NaturalOracle DataGaurd tutorial Series Coming Soon!! Natural
For Any queries, please mail us at support@funoracleapps.com

Query to find the User preferences set for a User in Oracle Apps/EBS

1 comment

Query to find the User preferences set for a User in Oracle Apps/EBS


We can use below query to check preferences set for a user.  In this example I am checking the preferences set for user related to workflow/mails.


select * from fnd_user_preferences where PREFERENCE_NAME='MAILTYPE' and MODULE_NAME = 'WF' and user_name in  ('HIMANSHU.SINGH');


select preference_value
from fnd_user_preferences
where user_name='HIMANSHU.SINGH'
and preference_name='MAILTYPE';

select distinct PREFERENCE_VALUE from fnd_user_preferences where PREFERENCE_VALUE  like '%MAI%'

select PREFERENCE_VALUE
from FND_USER_PREFERENCES
where USER_NAME='-WF_DEFAULT-'
and MODULE_NAME='WF'
and PREFERENCE_NAME='MAILTYPE' ;


select * from wf_local_roles
where notification_preference in ('DISABLED','QUERY')
and orig_system='PER' and name in ('HIMANSHU.SINGH');

1 comment :

Post a Comment

Some useful Commands/Scripts for ASM

No comments

Some useful Commands for ASM


I am sharing few useful commands related to ASM which can be used for DBA's.

1) Check if the ASM disk is a Member or not.

In the below example I am using condition to check the path because all my DISK name are configured with Instance name.

select path, header_status,name from v$asm_disk where header_status='MEMBER' and PATH like '%PROD%';
select path, header_status,name from v$asm_disk where header_status='FORMER' and PATH like '%PROD%';

2) List all DISK in ASM.

/usr/sbin/oracleasm listdisks 

3)  Find Serial Number for a DISK.

sudo /usr/local/bin/asm2serial "PROD_DATA01 PROD_DATA02"

PROD_DATA01 : 742b00000ac084 (/dev/mapper/inf01_asm_data08)
PROD_DATA02: 742b0000ac092 (/dev/mapper/inf01_asm_data09)

4) Find free and used space in DISKGROUP.

SELECT name, free_mb, total_mb, total_mb-free_mb "USED_MB", free_mb/total_mb*100 "%FREE" FROM v$asm_diskgroup;

5) Monitoring ASM Disk Operations

select GROUP_NUMBER, OPERATION, STATE, ACTUAL, SOFAR, EST_MINUTES from v$asm_operation;

If there is a operating going on (like rebalancing) the query will return some rows.

GROUP_NUMBER OPERA STAT    ACTUAL  SOFAR      EST_MINUTES
------------ ----- ---- ---------- ---------- -----------
1           REBAL RUN           1         10          12


6) Find ASM Disks

select GROUP_NUMBER, NAME, PATH, STATE, TOTAL_MB, FREE_MB from v$asm_disk;

No comments :

Post a Comment

How to submit a concurrent program using the CONCSUB utility in Oracle Apps/EBS

No comments

In this post we are going to see how to submit a concurrent program using the CONCSUB utility 


Syntax for CONCSUB utility

CONCSUB / \
\
\
\
[WAIT=N|Y|] \
CONCURRENT \
\
\
[PROGRAM_NAME=] \
LANGUAGE - R12 onwards only \
TERRITORY - R12 onwards only
[ORG_ID=<#>] - R12 onwards only
[REPEAT_TIME=] \
[REPEAT_INTERVAL= ] \
[REPEAT_INTERVAL_UNIT=< resubmission unit>] \
[REPEAT_INTERVAL_TYPE=< resubmission type>] \
[REPEAT_END=] \
[START=] \
[IMPLICIT=< type of concurrent request> \
[ ... ]

How to pass a parameter through CONCSUB:

Example:

'"08JUN96 23:55:00"'

Parameters and Meaning

 Required. The ORACLE username and password that provides access to the data that the program uses.

 Required. The application short name of the responsibility whose concurrent processing options to be used.

 Required. The name of the responsibility. If the name of the responsibility includes spaces, enclose that name in double quotes.

 Required. The uppercase username of the application user whose concurrent processing options to use.

 Optional. A flag that indicates whether to wait for the submitted request to complete. If one leaves this parameter out, the default value of N makes CONCSUB return to the operating system prompt without waiting for the request to complete.
Set WAIT=Y to have CONCSUB check the request status every 60 seconds and returns to the operating system prompt when the request is completed. One can also enter an integer value for a number of seconds, as in WAIT=30, for CONCSUB to check for request completion every seconds.

Attention: Using WAIT=Y or WAIT= requires that the request completes before CONCSUB returns to the operating system. If the concurrent manager is down, the CONCSUB process waits indefinitely until the concurrent manager is started and the request completes.

 Required. A flag that separates the program specific parameters from the operating system parameters.

 Required. The application short name of the concurrent program.

 Required. The uppercase name of the program. It must be the short name that was enter in the Concurrent Programs window when defining a concurrent program.

 Optional. A descriptive name for your program. The program field on the View Requests form displays this as the user friendly program name. The concurrent program short name passed to CONCSUB is often hard for end users to understand, so the PROGRAM_NAME parameter allows one to pass a more easily remembered name for a concurrent program. If one does not specify a PROGRAM_NAME, the View Requests form displays the user friendly program name specified in the Concurrent Programs window.
One may also use the PROGRAM_NAME parameter to indicate the batch that your request processes for programs that process a set of data, where there could be several requests for a given program that are active at the same time.

 Optional. Introduced in R12, set to org id required for the report to be run with.

 Optional. The time of day to resubmit the request.  The format for the time is HH24:MI or HH24:MI:SS. For example, REPEAT_TIME=14:30 resubmits the request daily at 2:30 p.m.

Attention:
 Do not use REPEAT_TIME with other resubmission parameters except for the optional parameters REPEAT_END and START.

 Optional. The interval between resubmission (a positive integer or real number). Use this parameter along with REPEAT_INTERVAL_UNIT to specify the time between resubmissions.

 Optional. The unit of time used for the interval between resubmissions. The available units are MINUTES, HOURS, DAYS or MONTHS. Use this parameter along with REPEAT_INTERVAL to specify the time between resubmissions. For example, setting REPEAT_INTERVAL=12 and REPEAT_INTERVAL_UNIT=HOURS resubmits the request every twelve hours. The default value is DAYS.

Attention: Do not use REPEAT_INTERVAL and REPEAT_INTERVAL_UNIT with REPEAT_TIME.

 Optional. Whether to time the resubmission interval from the requested start time of the request or from its completion. Set this parameter either to START or END. The default value is START.

Attention: Use REPEAT_INTERVAL_TYPE only if one uses REPEAT_INTERVAL.

 Optional. The date and time to stop resubmitting the concurrent request. Use one of the following for the format of the end date:

DDMONRR HH24:MI:SS (as in 07“APR02 18:32:05€™)
or
DDMONRRRR HH24:MI:SS (as in 07€“APR2002 18:32:05€™)
Note that because this date format includes a space, one must enclose the date in double quotation marks and single quotation marks. One can also specify just the date:
DDMONRR
or
DDMONRRRR

 Optional. The NLS language for the request. (LANGUAGE=SIMPLIFIED CHINESE \)

 Optional. The NLS territory for the request. (TERRITORY=CHINA \)

 Optional. A start date and time for the program in this format:
DDMONRR HH24:MI:SS (as in 07€“APR02 18:32:05€™)
Because this date format includes a space, one must enclose the date in double quotation marks and single quotation marks. If one does not specify a start time, the program submits immediately and is processed by the next available concurrent manager. The default value is the current time.

 Optional. Whether to show this concurrent request on the View Requests form. Specify NO, YES, ERROR or WARNING. The value IMPLICIT=NO allows the request to appear on the View Request form. The default value is NO.
The value IMPLICIT=YES means that only the System Administrators privileged View Concurrent Requests form displays this request. Use this value if the request is not interesting to the user.
Specify IMPLICIT=ERROR or IMPLICIT=WARNING, respectively, if one wants the request to appear only if it fails or completes with warnings.

 Optional. The number of days after which to repeat the concurrent request, calculated from the last requested start date. The number can be a positive integer or real number. For example,
REPEAT_DAYS=1.5 resubmits the request every 36 hours.

Attention: Do not use REPEAT_DAYS with other re-submission parameters except for the optional parameters REPEAT_END and START.
Suggestion: REPEAT_DAYS will become obsolete in a future release. One may therefore want to use REPEAT_INTERVAL, REPEAT_INTERVAL_TYPE and REPEAT_INTERVAL_UNIT instead of REPEAT_DAYS.

... Optional. The program specific parameters. If a parameter includes spaces, enclose that parameter in double quotes, then in single quotes. If a parameter contains a double quotation mark as part of the argument, precede that mark with a backslash [\].

Please note that the program specific parameters must be explicitly passed to CONCSUB,  any default values that may be used when the program is submitted via the normal screens (ie Standard Report Submission or SRS) will not be used by CONCSUB.

Sample Examples:

In this example we are submitting concurrent request to gather stats of few schemas.

CONCSUB apps/apps FND 'System Administrator' SYSADMIN wait=N CONCURRENT FND FNDGSCST PROGRAM_NAME='"Gather Schema Statistics"' GL        10 '""' NOBACKUP '""' LASTRUN GATHER '""' N
CONCSUB apps/apps FND 'System Administrator' SYSADMIN wait=N CONCURRENT FND FNDGSCST PROGRAM_NAME='"Gather Schema Statistics"' XLA        10 '""' NOBACKUP '""' LASTRUN GATHER '""' N
CONCSUB apps/apps FND 'System Administrator' SYSADMIN wait=N CONCURRENT FND FNDGSCST PROGRAM_NAME='"Gather Schema Statistics"' ZX        10 '""' NOBACKUP '""' LASTRUN GATHER '""' N
CONCSUB apps/apps FND 'System Administrator' SYSADMIN wait=N CONCURRENT FND FNDGSCST PROGRAM_NAME='"Gather Schema Statistics"' AP        10 '""' NOBACKUP '""' LASTRUN GATHER '""' N
CONCSUB apps/apps FND 'System Administrator' SYSADMIN wait=N CONCURRENT FND FNDGSCST PROGRAM_NAME='"Gather Schema Statistics"' AR        10 '""' NOBACKUP '""' LASTRUN GATHER '""' N





Ref: How To Submit A Concurrent Request Using CONCSUB Syntax (Doc ID 457519.1)

No comments :

Post a Comment

How to Start/Stop services in Oracle Apps R12.2 on all nodes through single command

No comments
If we have a EBS instance in  R12.2.x and it is configured with multiple nodes, then we can use the below commands to stop and start all services at one time.


To stop all services on all nodes

adstpall.sh apps/apps_password -mode=allnodes


To Start all services on all nodes

adstrtal.sh apps/apps_password -mode=allnodes



(The above commands will ask for WebLogic password)

This command will internally connect all the nodes via ssh as you would have enabled ssh as part of R12.2.x pre-requisites setup. If you have not enabled ssh, you will not be able to apply patches in remote nodes and it will get failed.

If we want to skip stopping of weblogic admin services then we can use below commands


adstpall.sh apps/apps -skipNM -skipAdmin

No comments :

Post a Comment

Query to identify printers set with the "Printer" profile, at the all profile levels in Oracle Apps

5 comments

Query to identify printers set with the "Printer" profile, at the all profile levels in Oracle Apps





Script:


select distinct
t.user_profile_option_name "Profile Option Name",
decode(v.level_id, 10001,'Site Level',
10002,'Application Level --> ' ||application_name ,
10003,'Responsibility level-->'||responsibility_name,
10004,'User Level-->' ||u.user_name,
'XXX') "Profile Option Level",
profile_option_value "Value"
from fnd_profile_options o,
fnd_profile_option_values v,
fnd_profile_options_tl t,
fnd_responsibility_tl r,
fnd_application_tl a,fnd_user u
where o.profile_option_id = v.profile_option_id
and o.application_id = v.application_id
and start_date_active <= SYSDATE
and nvl(end_date_active,SYSDATE) >= SYSDATE
and o.profile_option_name = t.profile_option_name
and a.application_id(+) = decode(level_id,10002,level_value,null)
and r.responsibility_id(+)= decode(level_id,10003,level_value,null)
and u.user_id(+) = decode(level_id,10004,level_value,null)
--and nvl(u.end_date, sysdate) >= sysdate
and t.user_profile_option_name = 'Printer'
and profile_option_value='' --replace with printer name
order by 2, --v.level_id,
t.user_profile_option_name,
decode(v.level_id, 10001,'Site Level',
10002,'Application Level --> ' ||application_name ,
10003,'Responsibility level-->'||responsibility_name,
10004,'User Level-->' ||u.user_name,
'XXX');

5 comments :

Post a Comment

How to Deploy SSL Certificates on Oracle Weblogic

No comments

How to Deploy SSL Certificates on Oracle Weblogic


Oracle Weblogic uses the Java Keystore architecture to manage and deploy SSL Certificates. We need to get the certificate from the certifying authority and download the root certificate, intermediate and main certificate out of that.


Steps to deploy:


1) Set Weblogic Environment

/wlserver_10.3/server/bin/setWLSenv.sh

2) Concatenate Certificate with Root Certificate(s) into 1 file

Sequence would as below

Main Signed Cert + CA Intermediate(s) + CA Root

and Save file as: fullcertificate.crt

3) Import Full Cert into identity.jks Keystore
keytool -import -trustcacerts -alias funoracle -file fullcertificate.crt -keystore identity.jks

4) Create Empty Trust Store
This Trust Store will be used to store the Root and Intermediate certificates alone

keytool -genkey -keyalg RSA -alias dummy -keystore truststore.jks

## Answers DO NOT MATTER you will delete this dummy record next

What is your first and last name?
[Unknown]:
What is the name of your organizational unit?
[Unknown]:
What is the name of your organization?
[Unknown]:
What is the name of your City or Locality?
[Unknown]:
What is the name of your State or Province?
[Unknown]:
What is the two-letter country code for this unit?
[Unknown]:
Is CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown correct?
[no]:  yes

Enter key password for
(RETURN if same as keystore password):
Re-enter new password:
 

5) Delete the DUMMY record
Here we remove the “dummy” alias before importing the Trust chain in the next step.

keytool -delete -alias dummy -keystore truststore.jks
 

6) Import the Trust Cert Chain only from the CRT format
CA Intermediate(s) + CA Root

keytool -import -alias root -file inter.crt -keystore truststore.jks
 

7) In Weblogic Console -> Server
Set SSL Listen Port to 443 and disable Listen port for 80 (if you want to force the server to SSL only). Else no action required



8) In Weblogic Console -> Server
Keystore Tab -> Change to Custom Identity and Trust

For Identity set:

Custom Identity Keystore == C:\Oracle\keystore\identity.jks
Custom Identity Keystore Type == JKS
Custom Identity Keystore Passphrase ==
For Trust set:

Custom Trust Keystore == C:\Oracle\keystore\truststore.jks
Custom Trust Keystore Type == JKS
Custom Trust Keystore Passphrase ==

9) In Weblogic Console -> Server
In SSL Tab

Set Private Key Alias == portal
Set Private Key Passphrase ==
In the Advanced Section set Use JSSE SSL on


No comments :

Post a Comment

Query to Check All Concurrent Manager Status

1 comment

We can use below query to check all concurrent managers status with node name and number of actual/target processes.



Script:


SELECT   b.user_concurrent_queue_name "Concurrent Manager", a.TARGET_NODE "Node", a.running_processes "ACTUAL Processes", a.max_processes "TARGET Processes"
   ,DECODE (b.control_code
     ,'D', 'Deactivating'
     ,'E', 'Deactivated'
     ,'N', 'Node unavai'
     ,'A', 'Activating'
     ,'X', 'Terminated'
     ,'T', 'Terminating'
     ,'V', 'Verifying'
     ,'O', 'Suspending'
     ,'P', 'Suspended'
     ,'Q', 'Resuming'
     ,'R', 'Restarting'
     ) status
  FROM apps.fnd_concurrent_queues a, apps.fnd_concurrent_queues_vl b
    WHERE a.concurrent_queue_id = b.concurrent_queue_id AND a.running_processes = a.max_processes
 ORDER BY a.max_processes DESC;




1 comment :

Post a Comment

Introduction to Oracle Data Gaurd - Chapter 2

1 comment
In this post I am going to cover the concepts of Oracle Data Gaurd.


Oracle Datagaurd is part of Oracle Maximum Availability Architecture(MAA) which includes various Oracle technologies like RAC,ASM,Flashback, Active DataGaurd and Goldengate.





















Datagaurd is part of MAA and used for Data protection which provides a disaster recovery solution for Oracle Databases. It also be considered as a High Availability Solution*.
For Datagaurd we can  keep the DR on different servers,data centers or geographical location to provide best data protection.



























In the DR environment the source database from where data is synced to target database is called as PRIMARY Database and the target database is know as Standby Database. The above picture represents simple architecture for a basic DR configuration.

DR sends the redo log files to standby database so it is also know as log  shipping based replication.
DR is a unidirectional replication which means that any changes to data made in Primary would only move to standby. No changes can be done at standby side

1 comment :

Post a Comment

Oracle DataGaurd Tutorial Series Details-Chapter 1

No comments
Hello and welcome to the Oracle DataGaurd Tutorial Series of post. In these post I would be sharing the guide to start understanding and working on data gaurd.

You should be having some prior knowledge on 

a) Oracle Database administration Basics
b) Basic of Linux Command
c) Have knowledge of working on virtual box and setting up server.

I will be covering topics related to below in this series.

1) Introduction to Oracle DataGaurd- Understanding the concepts.
2) Create and Manage Physical and Logical Standby database.
3) Understanding and Configuring Data Gaurd Broker and using it to monitor Data Gaurd.
4) How to do role transition (Switch Over and Failover)
5) How to setup Fast-Start Failover(FSFO)
6) How to setup Active Data Gaurd
7) How to setup Snapshot Standy Database
8) Implement Client Failover
9) How to Use RMAN for datagaurd environments

I would be using Oracle Virtual Box to setup the Oracle Data Gaurd Environment.

Environment Requirement

1. Virtual Box software latest version
2. Database software 12cR1(12.1.0.2)
3. Oracle Enterprise Linux 6.4 64 bit
4  Putty or ssh terminal(In case of Linux)
5. Using the above , I have setup two Machines on virtual box.(How to create Virtual Machine and Install Oracle database). I would not separately mention, how to install oracle database as part of this series. I would assume you would have already completed that. In case of any issue, Please mention in comment section.





No comments :

Post a Comment

How to install/configure Oracle EBS R12.2 on Multiple Server/Nodes (Database and Application Separately)

No comments

In this post I am going to share how to install Oracle EBS R12.2 on multiple nodes. Which means Database on one server and Application on one server.


I am using Oracle Virtual Box and configured 2 servers, one for Database and one for Application.

Virtual Server/Machine Details

Database Node
Memory: 6 GB
Harddisk: 200 GB
Hostname: fundb.lab
IP: 192.168.56.80
OSuser: oracle
Stage Area has been created separately on nodes and is non shared

Application Node


Memory: 7 GB

Harddisk: 270 GB
Hostname: funapp.lab
IP: 192.168.56.81
OSuser: applmgr
Stage Area has been created separately on nodes and is non shared

 Please perform all the pre-reqs on both nodes as described in earlier post.

1) user creation
2) rpm installation and limits configuration
3) oraInst.loc

Refer https://www.funoracleapps.com/2017/02/installing-oracle-apps-r122-step-by.html for steps by step pre-installation method setup.

Also make sure hostname are pingable from each other. This can be achieved by putting the entries in /etc/hosts file.

Once both the servers are ready to installation. Please follow below steps

1) Kick-off rapidwiz on Database node first. We need to give all information for our db node and apps node. Once the installation on DB node completes, our database and listener would be ready.
























2) There would be a configuration file created on DB node ($ORACLE_HOME/appsutil/conf_.txt). Please copy it to application node as it would be needed during installation. 

3) Now we need to kickoff rapidwiz on application node.




Please provide the path of configuration file copied in step 2.











This completes our installation of EBS on 2 nodes.



No comments :

Post a Comment

Workflow Services are not Running or Starting in R12 Oracle Apps

1 comment
Oracle Workflow Services in Oracle Applications are encountering problems.The workflow components are not starting when I was trying to start up the services from front end web-form using system administrator responsibility.These services appear with a Target value of 1 and an Actual value of 0. Even I tried from Concurrent>Manager>Administer form but still these were not starting.

 Workflow components was not coming  Up and  showing as below


 Target - 1 Actual - 0


Workflow service Components and there shotnames.

Workflow Agent Listener Service - WFALSNRSVC
Workflow Mailer Service - WFMLRSVC
Workflow Document Web Services Service - WFWSSVC

 We can find the same using below query as well.

Workflow Agent Listener Service:

SQL> select CONCURRENT_QUEUE_NAME from  apps.fnd_concurrent_queues_tl where USER_CONCURRENT_QUEUE_NAME='Workflow Agent Listener Service';

CONCURRENT_QUEUE_NAME
------------------------------
WFALSNRSVC


Workflow Mailer Service:

SQL> select CONCURRENT_QUEUE_NAME from  apps.fnd_concurrent_queues_tl where USER_CONCURRENT_QUEUE_NAME='Workflow Mailer Service';

CONCURRENT_QUEUE_NAME
------------------------------
WFMLRSVC


Workflow Document Web Services Service:

SQL> select CONCURRENT_QUEUE_NAME from  apps.fnd_concurrent_queues_tl where USER_CONCURRENT_QUEUE_NAME='Workflow Document Web Services Service';

CONCURRENT_QUEUE_NAME
------------------------------
WFWSSVC



Now to fix the issue we will follow below steps

1) Make the the processes value zero for these services.

UPDATE  fnd_concurrent_queues
SET running_processes = 0, max_processes = 0
where concurrent_queue_name in ('WFWSSVC','WFALSNRSVC','WFMLRSVC'); 

3 rows updated.

2) Update Control codes with NULL

UPDATE  fnd_concurrent_queues
SET control_code = NULL
WHERE concurrent_queue_name in ('WFWSSVC','WFALSNRSVC','WFMLRSVC')
AND control_code not in ('E', 'R', 'X')
AND control_code IS NOT NULL; 

0 rows updated.

3) Make Target node as Null option

UPDATE  fnd_concurrent_queues
SET target_node = null
where concurrent_queue_name in ('WFWSSVC','WFALSNRSVC','WFMLRSVC'); 

3 rows updated.

4) Commit

SQL>commit;

Commit complete.

5) Check Workflow Concurrent Managers

Wait for few minutes, the Internal concurrent manager will bring up services automatically.
We can check the components status using following SQL statements.

SQL> select control_code,running_processes,MAX_PROCESSES from fnd_concurrent_queues where concurrent_queue_name='WFALSNRSVC';

C RUNNING_PROCESSES MAX_PROCESSES
- ----------------- -------------
                  1             1

SQL> select control_code,running_processes,MAX_PROCESSES from fnd_concurrent_queues where concurrent_queue_name='WFALSNRSVC';

C RUNNING_PROCESSES MAX_PROCESSES
- ----------------- -------------
                  1             1

SQL> select control_code,running_processes,MAX_PROCESSES from fnd_concurrent_queues where concurrent_queue_name='WFWSSVC';

C RUNNING_PROCESSES MAX_PROCESSES
- ----------------- -------------
                  1             1

1 comment :

Post a Comment