4 Ответы Последний ответ: 31.03.2016 20:44, автор: Steve Rawson-Oracle

# Where can I find a patched ojdbc7.jar?

Re:  BUG:18707079.  (JDBC THIN DRIVER LEAKS THREADS AND REFERENCES ON WEBAPP SHUTDOWN.)

I tried applying the patch, but I don't have a full Oracle install, just the jdbc driver, so OPatch didn't work.

I tried just copying the new .class files into the existing .jar, but this also did not work.

Where can I just get a patched ojdbc7.jar file without having to run opatch?

Thanks,

-- Steve

• ###### 1. Re: Where can I find a patched ojdbc7.jar?

You may refer the following steps to apply the patch manually

CAUTION:
The following steps consist of manually extracting and altering the files that make up the Oracle JDBC Thin driver or UCP. Be sure to save a backup copy of the JDBC JAR or UCP JAR file before undertaking these steps.

Make sure to replace references to "ojdbc6.jar" with the name of the JDBC JAR file that you're using.  This may be "ojdbc14.jar" for older 10g drivers; "ojdbc5.jar" when using 11g drivers with JDK 1.5; or "ojdbc7.jar" when using 12c drivers with JDK 1.7.

1. Download the required one-off/backport patch from My Oracle Support.
2. Extract this downloaded to patch to an arbitrary directory on the local system.
3. Unzip/extract the patch file.
4. Make a backup copy of the existing "ojdbc6.jar" file.
5. Copy the file "ojdbc6.jar" used by your application to the directory \[PatchNumber]\files\jdbc\lib\ojdbc6.jar.
6. Execute the following commands from a command prompt:
% cd .\[PatchNumber]\files\jdbc\lib\ojdbc6.jar
% jar uvf ojdbc6.jar *
7. Copy the patched "ojdbc6.jar" file to your test environment.

To illustrate the concept, these steps are outlined below using the example of applying Patch 19452551 to the 11.2.0.4 JDBC Thin driver:

1. Download Patch 19452551 from My Oracle Support
2. Extract this patch to an arbitrary directory on your local system.
3. Unzip/extract the patch file.
4. Make a backup copy of the existing "ojdbc6.jar" file.
5. Copy the file "ojdbc6.jar" used by your application to the directory \19452551\files\jdbc\lib\ojdbc6.jar .
6. Execute the following commands from a command prompt:
% cd .\19452551\files\jdbc\lib\ojdbc6.jar
% jar uvf ojdbc6.jar *
7. Copy the patched "ojdbc6.jar" file to your test environment.

For UCP, the same principle applies.  To illustrate the concept using the example of applying Patch 19151967 to 11.2.0.4 UCP:

1. Download Patch 19151967 from My Oracle Support.
2. Extract this patch to an arbitrary directory on your local system.
3. Unzip/extract the patch file.
4. Make a backup copy of the existing 11.2.0.4 "ucp.jar" file.
5. Copy the file "ucp.jar" used by your application to the directory \19151967\files\ucp\lib\ucp.jar
6. Execute the following commands from a command prompt:
% cd .\19151967\files\ucp\lib\ucp.jar
% jar uvf ucp.jar *
7. Copy the patched "ucp.jar" file to your test environment.

How to Manually Apply a One-Off Patch to the JDBC Thin Driver or to the Universal Connection Pool (Doc ID 431463.1)

1 пользователь считает эту информацию полезной
• ###### 2. Re: Where can I find a patched ojdbc7.jar?

Thanks!  I'll try that.

-- Steve

• ###### 3. Re: Where can I find a patched ojdbc7.jar?

Find an equivalent patch for just the JDBC driver which will contain replacement jar files which you can just extract from the patch bundle.

• ###### 4. Re: Where can I find a patched ojdbc7.jar?

Sorry, that did not work.  I got the same error message as when I tried just copying the new .class files from the patch into ojdbc7.jar using 7zip:

`Mar 31, 2016 3:05:09 PM org.apache.catalina.startup.Catalina load INFO: Initialization processed in 5625 ms Mar 31, 2016 3:05:09 PM org.apache.catalina.startup.Catalina start SEVERE: The required Server component failed to start so Tomcat is unable to start. org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]] at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) at org.apache.catalina.startup.Catalina.start(Catalina.java:689) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:321) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455) Caused by: java.lang.NoSuchMethodError: oracle.jdbc.driver.PhysicalConnection.getSystemPropertySqlTranslationProfile()Ljava/lang/String; at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:657) at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:278) at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:182) at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:701) at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:635) at org.apache.tomcat.jdbc.pool.ConnectionPool.init(ConnectionPool.java:486) at org.apache.tomcat.jdbc.pool.ConnectionPool.(ConnectionPool.java:144) at org.apache.tomcat.jdbc.pool.DataSourceProxy.pCreatePool(DataSourceProxy.java:116) at org.apache.tomcat.jdbc.pool.DataSourceProxy.createPool(DataSourceProxy.java:103) at org.apache.tomcat.jdbc.pool.DataSourceFactory.createDataSource(DataSourceFactory.java:554) at org.apache.tomcat.jdbc.pool.DataSourceFactory.getObjectInstance(DataSourceFactory.java:242) at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:141) at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:321) at org.apache.naming.NamingContext.lookup(NamingContext.java:842) at org.apache.naming.NamingContext.lookup(NamingContext.java:153) at org.apache.naming.NamingContext.lookup(NamingContext.java:830) at org.apache.naming.NamingContext.lookup(NamingContext.java:167) at org.apache.catalina.core.NamingContextListener.addResource(NamingContextListener.java:1103) at org.apache.catalina.core.NamingContextListener.createNamingContext(NamingContextListener.java:682) at org.apache.catalina.core.NamingContextListener.lifecycleEvent(NamingContextListener.java:271) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:731) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ... 7 more Mar 31, 2016 3:05:09 PM org.apache.catalina.util.LifecycleBase destroy WARNING: Calling stop() on failed component [StandardServer[8005]] to trigger clean-up did not complete. org.apache.catalina.LifecycleException: Failed to stop component [StandardServer[8005]] at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:236) at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:272) at org.apache.catalina.startup.Catalina.start(Catalina.java:693) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:321) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455) Caused by: org.apache.catalina.LifecycleException: An invalid Lifecycle transition was attempted ([before_stop]) for component [StandardService[Catalina]] in state [INITIALIZED] at org.apache.catalina.util.LifecycleBase.invalidTransition(LifecycleBase.java:409) at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:219) at org.apache.catalina.core.StandardServer.stopInternal(StandardServer.java:760) at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232) ... 8 more Mar 31, 2016 3:05:09 PM org.apache.coyote.AbstractProtocol destroy INFO: Destroying ProtocolHandler ["http-bio-8080"] Mar 31, 2016 3:05:09 PM org.apache.coyote.AbstractProtocol destroy INFO: Destroying ProtocolHandler ["http-bio-8443"] Mar 31, 2016 3:05:09 PM org.apache.coyote.AbstractProtocol destroy INFO: Destroying ProtocolHandler ["ajp-bio-8009"] `

I'll just keep using the unpatched ojdbc7.jar for now.

Thanks again,

-- Steve