Support Article
Shareable resource reference warning in log files
SA-10329
Summary
User has deployed NBAM v7.12 application in Weblogic and observed following warning messages in the log files.
Error Messages
<Warning: Caller application prbeans.jar defines a shareable resource reference eis/PRAdapterConnectionFactory to outbound connection pool eis/PRAdapterCF, but the pool does not support share by its design either because its transaction support level is NOTransaction or the ManagedConnectionFactory class has the @Unshareable annotation. Will treat as unshareable.>
Steps to Reproduce
Not Applicable
Root Cause
The root cause of this problem is known issue in Oracle Weblogic, kindly refer Oracle forums to know more.
Resolution
Update the scope for "eis/PRAdapterConnectionFactory" to Unshareable for BMT and CMT in ejb-jar.xml to resolve the issue.
About PRAdapterConnectionFactory:
“eis/PRAdapterConnectionFactory” is a resource reference name for the Connection Factory for the PRPC embedded Resource Adapter which is used in the e-tier deployment to manage agents and listeners.
About Unshareable and shareable connections:
The application server supports both unshareable and shareable connections. An unshareable connection is not shared with other components in the application. The component using this connection has full control of this connection.
Access to a resource marked as unshareable means that there is a one-to-one relationship between the connection handle a component is using and the physical connection with which the handle is associated. This access implies that every call to the getConnection method returns a connection handle solely for the requesting user. Typically, you must choose unshareable if you might do things to the connection that could result in unexpected behavior occurring in another application that is sharing the connection (for example, unexpectedly changing the isolation level).
Marking a resource as shareable allows for greater scalability. Instead of retrieving a new physical connection from the connection pool for every getConnection() invocation, the physical connection (that is, managed connection) is shared through multiple connection handles, as long as each getConnection request has the same connection properties. However, sharing a connection means that each user must not do anything to the connection that could change its behavior and disrupt a sharing partner (for example, changing the isolation level). The user also cannot code an application that assumes sharing to take place because it is up to the run time to decide whether or not to share a particular connection.
Published June 12, 2015 - Updated October 8, 2020
Have a question? Get answers now.
Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.