My Oracle Support Banner

Java Lock Contention When Using STRUCT Class (Doc ID 2432921.1)

Last updated on AUGUST 10, 2018

Applies to:

JDBC - Version and later
Information in this document applies to any platform.


Throughput issues encountered due to java lock contention when using STRUCT class with WebLogic application JDBC

Non-transactional database procedure calls are done using oracle types ( and severe java lock contention is encountered when trying to read out or create the STRUCTS.

This is due to the connection being held in the STRUCTS and the attempt to re-use the java connection, but the actual connection is already given back to the pool and is locked by another thread making requests.

This results in very large slowdowns as the number of threads grows.


"[ACTIVE] ExecuteThread: '22' for queue: 'weblogic.kernel.Default (self-tuning)'" #57 daemon prio=5 os_prio=0 tid=0x00007f39c8142000 nid=0x71a0 runnable [0x00007f39be0c0000]
              java.lang.Thread.State: RUNNABLE
            at oracle.jdbc.driver.PhysicalConnection.getTypeMap(
            - locked <0x000000068f23aff0> (a oracle.jdbc.driver.T4CConnection)
            at oracle.sql.STRUCT.getMap(
            at oracle.sql.STRUCT.getAttributes(
            - locked <0x000000068f23aff0> (a oracle.jdbc.driver.T4CConnection)


"[ACTIVE] ExecuteThread: '21' for queue: 'weblogic.kernel.Default (self-tuning)'" #56 daemon prio=5 os_prio=0 tid=0x00007f39c8140000 nid=0x719f waiting for monitor entry [0x00007f39be1c1000]
              java.lang.Thread.State: BLOCKED (on object monitor)
            at oracle.sql.STRUCT.getAttributes(
            - waiting to lock <0x000000068f23aff0> (a oracle.jdbc.driver.T4CConnection)




To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!

My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.