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

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

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');

How to Deploy SSL Certificates on Oracle Weblogic

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


Query to Check All Concurrent Manager Status

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;




Introduction to Oracle Data Gaurd - Chapter 2

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

Oracle DataGaurd Tutorial Series Details-Chapter 1

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.





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

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.



Workflow Services are not Running or Starting in R12 Oracle Apps

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