Recently I started upgrading our client's 11gR4 (non-CDB) databases to 12cR2 (CDB) databases. The database also used to provide data to SOA over JDBC Thin Client v11.1.0.7 connections made by SOA's weblogic server 10.3.3. Note that the SOA repository database is a different database.
Since Oracle 12.2.0.1 database would only certify client connections from 11.2.0.4 and above, the weblogic drivers were needed to be upgraded to appropriate version
Below are the steps to upgrade JDBC Driver globally for a domain i.e. for all managed servers the JDBC drivers will be upgraded.
Compatibility Matrix:
This can be checked from My Oracle Support (support.oracle.com) under certifications tab:
2. Checking Your Client Version:
a.) You could use drvtest application provided by Oracle Support to determine version of JDBC drivers used by Oracle Weblogic in SOA environment. The application once deployed can be run via deployments tab and would give result as below:
b.) OR you can run below query in remote database
-- Credits: http://marcel.vandewaters.nl/oracle/database-oracle/determine-versions-of-connected-oracle-clients
CREATE VIEW xksusecon AS SELECT * FROM SYS.x$ksusecon;
set lines 150 pages 1000
COL CLIENT_VERSION for a15
col USERNAME for a17
col PROGRAM for a16
col MODULE for a16
WITH x AS
(SELECT DISTINCT ksusenum sid,ksuseclvsn,TRIM(TO_CHAR(ksuseclvsn,'xxxxxxxxxxxxxx')) to_c,
TO_CHAR(ksuseclvsn,'xxxxxxxxxxxxxx') v
FROM
sys.xksusecon
)
SELECT x.sid,
DECODE(to_c,'0','Unknown',TO_NUMBER(SUBSTR(v,8,2),'xx') || '.' || -- maj_rel
SUBSTR(v,10,1) || '.' || -- mnt_rel
SUBSTR(v,11,2) || '.' || -- ias_rel
SUBSTR(v,13,1) || '.' || -- ptc_set
SUBSTR(v,14,2)) client_version, -- port_mnt
username,program, module
FROM x, v$session s
WHERE x.sid like s.sid AND type != 'BACKGROUND'
and MODULE like 'JDBC%'
ORDER BY 3,2
/
CLIENT_VERSION USERNAME PROGRAM
--------------- ----------------- ----------------
11.1.00.7.00 SOATRN_MDS JDBC Thin Client
11.1.00.7.00 SOATRN_MDS JDBC Thin Client
11.1.00.7.00 SOATRN_ORASDPM JDBC Thin Client
11.1.00.7.00 SOATRN_SOAINFRA JDBC Thin Client
11.1.00.7.00 SOATRN_SOAINFRA JDBC Thin Client
11.1.00.7.00 SOATRN_SOAINFRA JDBC Thin Client
11.1.00.7.00 SOATRN_SOAINFRA JDBC Thin Client
11.1.00.7.00 SOATRN_SOAINFRA JDBC Thin Client
11.1.00.7.00 SOATRN_SOAINFRA JDBC Thin Client
11.1.00.7.00 SOATRN_SOAINFRA JDBC Thin Client
11.1.00.7.00 SOATRN_SOAINFRA JDBC Thin Client
3. Downloading Drivers:
You can download drivers from Oracle's official website:
Just select the appropriate version and download all JAR files listed under it. I have downloaded these on my system under /oracle/client_stage/jdbc11204_drv
4. Upgrade Drivers
a.) Set correct permissions on driver files
oracle@soatrain01 $ cd /oracle/client_stage/jdbc11204_drv
oracle@soatrain01 jdbc11204_drv$ chmod 750 *
oracle@soatrain01 jdbc11204_drv$ ls -l
total 28M
-rwxr-x--- 1 oracle dba 3.3M Jul 5 04:54 ojdbc5dms_g.jar
-rwxr-x--- 1 oracle dba 2.5M Jul 5 04:54 ojdbc5dms.jar
-rwxr-x--- 1 oracle dba 3.3M Jul 5 04:54 ojdbc5_g.jar
-rwxr-x--- 1 oracle dba 2.0M Jul 5 04:54 ojdbc5.jar
-rwxr-x--- 1 oracle dba 4.4M Jul 5 04:54 ojdbc6dms_g.jar
-rwxr-x--- 1 oracle dba 3.2M Jul 5 04:54 ojdbc6dms.jar
-rwxr-x--- 1 oracle dba 4.3M Jul 5 04:54 ojdbc6_g.jar
-rwxr-x--- 1 oracle dba 2.7M Jul 5 04:54 ojdbc6.jar
-rwxr-x--- 1 oracle dba 71K Jul 5 04:54 ons.jar
-rwxr-x--- 1 oracle dba 1.6M Jul 5 04:54 orai18n.jar
-rwxr-x--- 1 oracle dba 257K Jul 5 04:54 xdb6.jar
b.) Navigate to $WL_HOME/server/ext/jdbc/oracle and backup old driver files
oracle@soatrain01 oracle$ pwd
/data/oracle/Middleware/wlserver_10.3/server/ext/jdbc/oracle
oracle@soatrain01 oracle$ mv 11g 11g.old
`11g/' -> `11g.old'
c.) Create new 11g directory and copy 11.2.0.4 drivers
oracle@soatrain01 oracle$ mkdir 11g
oracle@soatrain01 oracle$ cd 11g
oracle@soatrain01 11g$ cp /oracle/client_stage/jdbc11204_drv/* .
`/oracle/client_stage/jdbc11204_drv/ojdbc5dms_g.jar' -> `./ojdbc5dms_g.jar'
`/oracle/client_stage/jdbc11204_drv/ojdbc5dms.jar' -> `./ojdbc5dms.jar'
`/oracle/client_stage/jdbc11204_drv/ojdbc5_g.jar' -> `./ojdbc5_g.jar'
`/oracle/client_stage/jdbc11204_drv/ojdbc5.jar' -> `./ojdbc5.jar'
`/oracle/client_stage/jdbc11204_drv/ojdbc6dms_g.jar' -> `./ojdbc6dms_g.jar'
`/oracle/client_stage/jdbc11204_drv/ojdbc6dms.jar' -> `./ojdbc6dms.jar'
`/oracle/client_stage/jdbc11204_drv/ojdbc6_g.jar' -> `./ojdbc6_g.jar'
`/oracle/client_stage/jdbc11204_drv/ojdbc6.jar' -> `./ojdbc6.jar'
`/oracle/client_stage/jdbc11204_drv/ons.jar' -> `./ons.jar'
`/oracle/client_stage/jdbc11204_drv/orai18n.jar' -> `./orai18n.jar'
`/oracle/client_stage/jdbc11204_drv/xdb6.jar' -> `./xdb6.jar'
d.) Backup and replace driver files under $WL_HOME/server/lib
oracle@soatrain01 $ cd /data/oracle/Middleware/wlserver_10.3/server/lib
oracle@soatrain01 lib$ mv ojdbc6.jar ojdbc6.jar.old
`ojdbc6.jar' -> `ojdbc6.jar.old'
oracle@soatrain01 lib$ cp /oracle/client_stage/jdbc11204_drv/ojdbc6.jar .
`/oracle/client_stage/jdbc11204_drv/ojdbc6.jar' -> `./ojdbc6.jar'
5.Restart Managed Servers and Verify JDBC Driver Version
Managed Servers can be restarted via SOA administration console. After restarting verify version using either drvtest application OR by querying in remote database:
-- Credits: http://marcel.vandewaters.nl/oracle/database-oracle/determine-versions-of-connected-oracle-clients
CREATE VIEW xksusecon AS SELECT * FROM SYS.x$ksusecon;
set lines 150 pages 1000
COL CLIENT_VERSION for a15
col USERNAME for a17
col PROGRAM for a16
col MODULE for a16
WITH x AS
(SELECT DISTINCT ksusenum sid,ksuseclvsn,TRIM(TO_CHAR(ksuseclvsn,'xxxxxxxxxxxxxx')) to_c,
TO_CHAR(ksuseclvsn,'xxxxxxxxxxxxxx') v
FROM
sys.xksusecon
)
SELECT x.sid,
DECODE(to_c,'0','Unknown',TO_NUMBER(SUBSTR(v,8,2),'xx') || '.' || -- maj_rel
SUBSTR(v,10,1) || '.' || -- mnt_rel
SUBSTR(v,11,2) || '.' || -- ias_rel
SUBSTR(v,13,1) || '.' || -- ptc_set
SUBSTR(v,14,2)) client_version, -- port_mnt
username,program, module
FROM x, v$session s
WHERE x.sid like s.sid AND type != 'BACKGROUND'
and MODULE like 'JDBC%'
ORDER BY 3,2
/
CLIENT_VERSION USERNAME PROGRAM
--------------- ----------------- ----------------
11.2.00.4.00 SOATRN_MDS JDBC Thin Client
11.2.00.4.00 SOATRN_MDS JDBC Thin Client
11.2.00.4.00 SOATRN_ORASDPM JDBC Thin Client
11.2.00.4.00 SOATRN_SOAINFRA JDBC Thin Client
11.2.00.4.00 SOATRN_SOAINFRA JDBC Thin Client
11.2.00.4.00 SOATRN_SOAINFRA JDBC Thin Client
11.2.00.4.00 SOATRN_SOAINFRA JDBC Thin Client
11.2.00.4.00 SOATRN_SOAINFRA JDBC Thin Client
11.2.00.4.00 SOATRN_SOAINFRA JDBC Thin Client
11.2.00.4.00 SOATRN_SOAINFRA JDBC Thin Client
11.2.00.4.00 SOATRN_SOAINFRA JDBC Thin Client
Cheers!,
Anurag
Since Oracle 12.2.0.1 database would only certify client connections from 11.2.0.4 and above, the weblogic drivers were needed to be upgraded to appropriate version
Below are the steps to upgrade JDBC Driver globally for a domain i.e. for all managed servers the JDBC drivers will be upgraded.
1.
Current environment:
Application Information:
List of Oracle Homes:
Name Location
OH2065489457 /data/oracle/Middleware/oracle_common
OH1759065136 /data/oracle/Middleware/Oracle_SOA1
SOATDBHome1 /data/oracle/product/11.1.0
Application Server 11g SOA Patchset 11.1.1.3.0
Oracle SOA Suite 11g 11.1.1.2.0
WebLogic Server 10.3.3.0
List of Oracle Homes:
Name Location
OH2065489457 /data/oracle/Middleware/oracle_common
OH1759065136 /data/oracle/Middleware/Oracle_SOA1
SOATDBHome1 /data/oracle/product/11.1.0
Application Server 11g SOA Patchset 11.1.1.3.0
Oracle SOA Suite 11g 11.1.1.2.0
WebLogic Server 10.3.3.0
OS
Information:
oracle@soatrain01 /$ uname -a
Linux soatrain01 2.6.18-419.el5 #1 SMP Wed Feb 22 22:46:18 EST 2017 i686 i686 i386 GNU/Linux
oracle@soatrain01 /$ cat /etc/redhat-release
Red Hat Enterprise Linux Server release 5.11 (Tikanga)
oracle@soatrain01 /$ uname -a
Linux soatrain01 2.6.18-419.el5 #1 SMP Wed Feb 22 22:46:18 EST 2017 i686 i686 i386 GNU/Linux
oracle@soatrain01 /$ cat /etc/redhat-release
Red Hat Enterprise Linux Server release 5.11 (Tikanga)
Compatibility Matrix:
This can be checked from My Oracle Support (support.oracle.com) under certifications tab:
2. Checking Your Client Version:
b.) OR you can run below query in remote database
-- Credits: http://marcel.vandewaters.nl/oracle/database-oracle/determine-versions-of-connected-oracle-clients
CREATE VIEW xksusecon AS SELECT * FROM SYS.x$ksusecon;
set lines 150 pages 1000
COL CLIENT_VERSION for a15
col USERNAME for a17
col PROGRAM for a16
col MODULE for a16
WITH x AS
(SELECT DISTINCT ksusenum sid,ksuseclvsn,TRIM(TO_CHAR(ksuseclvsn,'xxxxxxxxxxxxxx')) to_c,
TO_CHAR(ksuseclvsn,'xxxxxxxxxxxxxx') v
FROM
sys.xksusecon
)
SELECT x.sid,
DECODE(to_c,'0','Unknown',TO_NUMBER(SUBSTR(v,8,2),'xx') || '.' || -- maj_rel
SUBSTR(v,10,1) || '.' || -- mnt_rel
SUBSTR(v,11,2) || '.' || -- ias_rel
SUBSTR(v,13,1) || '.' || -- ptc_set
SUBSTR(v,14,2)) client_version, -- port_mnt
username,program, module
FROM x, v$session s
WHERE x.sid like s.sid AND type != 'BACKGROUND'
and MODULE like 'JDBC%'
ORDER BY 3,2
/
CLIENT_VERSION USERNAME PROGRAM
--------------- ----------------- ----------------
11.1.00.7.00 SOATRN_MDS JDBC Thin Client
11.1.00.7.00 SOATRN_MDS JDBC Thin Client
11.1.00.7.00 SOATRN_ORASDPM JDBC Thin Client
11.1.00.7.00 SOATRN_SOAINFRA JDBC Thin Client
11.1.00.7.00 SOATRN_SOAINFRA JDBC Thin Client
11.1.00.7.00 SOATRN_SOAINFRA JDBC Thin Client
11.1.00.7.00 SOATRN_SOAINFRA JDBC Thin Client
11.1.00.7.00 SOATRN_SOAINFRA JDBC Thin Client
11.1.00.7.00 SOATRN_SOAINFRA JDBC Thin Client
11.1.00.7.00 SOATRN_SOAINFRA JDBC Thin Client
11.1.00.7.00 SOATRN_SOAINFRA JDBC Thin Client
3. Downloading Drivers:
You can download drivers from Oracle's official website:
Just select the appropriate version and download all JAR files listed under it. I have downloaded these on my system under /oracle/client_stage/jdbc11204_drv
4. Upgrade Drivers
a.) Set correct permissions on driver files
oracle@soatrain01 $ cd /oracle/client_stage/jdbc11204_drv
oracle@soatrain01 jdbc11204_drv$ chmod 750 *
oracle@soatrain01 jdbc11204_drv$ ls -l
total 28M
-rwxr-x--- 1 oracle dba 3.3M Jul 5 04:54 ojdbc5dms_g.jar
-rwxr-x--- 1 oracle dba 2.5M Jul 5 04:54 ojdbc5dms.jar
-rwxr-x--- 1 oracle dba 3.3M Jul 5 04:54 ojdbc5_g.jar
-rwxr-x--- 1 oracle dba 2.0M Jul 5 04:54 ojdbc5.jar
-rwxr-x--- 1 oracle dba 4.4M Jul 5 04:54 ojdbc6dms_g.jar
-rwxr-x--- 1 oracle dba 3.2M Jul 5 04:54 ojdbc6dms.jar
-rwxr-x--- 1 oracle dba 4.3M Jul 5 04:54 ojdbc6_g.jar
-rwxr-x--- 1 oracle dba 2.7M Jul 5 04:54 ojdbc6.jar
-rwxr-x--- 1 oracle dba 71K Jul 5 04:54 ons.jar
-rwxr-x--- 1 oracle dba 1.6M Jul 5 04:54 orai18n.jar
-rwxr-x--- 1 oracle dba 257K Jul 5 04:54 xdb6.jar
b.) Navigate to $WL_HOME/server/ext/jdbc/oracle and backup old driver files
oracle@soatrain01 oracle$ pwd
/data/oracle/Middleware/wlserver_10.3/server/ext/jdbc/oracle
oracle@soatrain01 oracle$ mv 11g 11g.old
`11g/' -> `11g.old'
c.) Create new 11g directory and copy 11.2.0.4 drivers
oracle@soatrain01 oracle$ mkdir 11g
oracle@soatrain01 oracle$ cd 11g
oracle@soatrain01 11g$ cp /oracle/client_stage/jdbc11204_drv/* .
`/oracle/client_stage/jdbc11204_drv/ojdbc5dms_g.jar' -> `./ojdbc5dms_g.jar'
`/oracle/client_stage/jdbc11204_drv/ojdbc5dms.jar' -> `./ojdbc5dms.jar'
`/oracle/client_stage/jdbc11204_drv/ojdbc5_g.jar' -> `./ojdbc5_g.jar'
`/oracle/client_stage/jdbc11204_drv/ojdbc5.jar' -> `./ojdbc5.jar'
`/oracle/client_stage/jdbc11204_drv/ojdbc6dms_g.jar' -> `./ojdbc6dms_g.jar'
`/oracle/client_stage/jdbc11204_drv/ojdbc6dms.jar' -> `./ojdbc6dms.jar'
`/oracle/client_stage/jdbc11204_drv/ojdbc6_g.jar' -> `./ojdbc6_g.jar'
`/oracle/client_stage/jdbc11204_drv/ojdbc6.jar' -> `./ojdbc6.jar'
`/oracle/client_stage/jdbc11204_drv/ons.jar' -> `./ons.jar'
`/oracle/client_stage/jdbc11204_drv/orai18n.jar' -> `./orai18n.jar'
`/oracle/client_stage/jdbc11204_drv/xdb6.jar' -> `./xdb6.jar'
d.) Backup and replace driver files under $WL_HOME/server/lib
oracle@soatrain01 $ cd /data/oracle/Middleware/wlserver_10.3/server/lib
oracle@soatrain01 lib$ mv ojdbc6.jar ojdbc6.jar.old
`ojdbc6.jar' -> `ojdbc6.jar.old'
oracle@soatrain01 lib$ cp /oracle/client_stage/jdbc11204_drv/ojdbc6.jar .
`/oracle/client_stage/jdbc11204_drv/ojdbc6.jar' -> `./ojdbc6.jar'
5.Restart Managed Servers and Verify JDBC Driver Version
Managed Servers can be restarted via SOA administration console. After restarting verify version using either drvtest application OR by querying in remote database:
-- Credits: http://marcel.vandewaters.nl/oracle/database-oracle/determine-versions-of-connected-oracle-clients
CREATE VIEW xksusecon AS SELECT * FROM SYS.x$ksusecon;
set lines 150 pages 1000
COL CLIENT_VERSION for a15
col USERNAME for a17
col PROGRAM for a16
col MODULE for a16
WITH x AS
(SELECT DISTINCT ksusenum sid,ksuseclvsn,TRIM(TO_CHAR(ksuseclvsn,'xxxxxxxxxxxxxx')) to_c,
TO_CHAR(ksuseclvsn,'xxxxxxxxxxxxxx') v
FROM
sys.xksusecon
)
SELECT x.sid,
DECODE(to_c,'0','Unknown',TO_NUMBER(SUBSTR(v,8,2),'xx') || '.' || -- maj_rel
SUBSTR(v,10,1) || '.' || -- mnt_rel
SUBSTR(v,11,2) || '.' || -- ias_rel
SUBSTR(v,13,1) || '.' || -- ptc_set
SUBSTR(v,14,2)) client_version, -- port_mnt
username,program, module
FROM x, v$session s
WHERE x.sid like s.sid AND type != 'BACKGROUND'
and MODULE like 'JDBC%'
ORDER BY 3,2
/
CLIENT_VERSION USERNAME PROGRAM
--------------- ----------------- ----------------
11.2.00.4.00 SOATRN_MDS JDBC Thin Client
11.2.00.4.00 SOATRN_MDS JDBC Thin Client
11.2.00.4.00 SOATRN_ORASDPM JDBC Thin Client
11.2.00.4.00 SOATRN_SOAINFRA JDBC Thin Client
11.2.00.4.00 SOATRN_SOAINFRA JDBC Thin Client
11.2.00.4.00 SOATRN_SOAINFRA JDBC Thin Client
11.2.00.4.00 SOATRN_SOAINFRA JDBC Thin Client
11.2.00.4.00 SOATRN_SOAINFRA JDBC Thin Client
11.2.00.4.00 SOATRN_SOAINFRA JDBC Thin Client
11.2.00.4.00 SOATRN_SOAINFRA JDBC Thin Client
11.2.00.4.00 SOATRN_SOAINFRA JDBC Thin Client
Cheers!,
Anurag
No comments:
Post a Comment