J2CA0075W warning messages are written to the SystemOut.log file during runtime

Technote (troubleshooting)


Problem(Abstract)

An application which uses JCA (J2C) connections causes the following warning messages to be logged to the SystemOut.log during runtime:


[4/11/03 11:53:41:711 PDT] 891a0 ConnectionMan W J2CA0075W: An active transaction should be present while processing method allocateMCWrapper.
[4/11/03 11:53:41:815 PDT] 891a0 ConnectionMan W J2CA0075W: An active transaction should be present while processing method initializeForUOW.

Cause

The J2CA0075W message is logged when an application has created its own thread from a servlet and subsequently uses that thread to obtain a J2C connection.

The Enterprise Java Bean (EJB) 2.0 and 2.1 specifications prohibit an EJB from managing threads. This includes starting, stopping, suspending and resuming threads.

EJB 2.0, Section 24.1.2 and EJB 2.1, Section 25.1.2 state the following:


    Programming Restrictions
    The enterprise bean must not attempt to manage threads. The enterprise bean must not attempt to start, stop, suspend, or resume a thread; or to change a thread’s priority or name. The enterprise bean must not attempt to manage thread groups.

For a servlet, the J2EE 1.3 and 1.4 specifications allow web components to create and manage threads, however, the execution and behavior of these threads must be tightly monitored by the application, not the application server. The specifications state the following:

J2EE 1.3 and J2EE 1.4:
    J2EE.4.2.1.1 Transaction Requirements
    If a web component creates a thread, the J2EE platform must ensure that the newly created thread is not associated with any JTA transaction.

    J2EE.4.2.3 Transactions and Threads
    JTA transactions should be started and completed in the thread in which the service method is called. Additional threads that are created for any purpose should not attempt to start JTA transactions.

Since both the application server and the application cannot use or start a JTA transaction on a newly created thread, the thread does not have a transaction context associated with it.

It is in the absence of a transaction that the J2CA0075W warning message is logged. The application server will not create an LTC (local transaction containment) either. This is because the thread was created by the application and is not managed by the WebSphere® Application Server runtime.


Resolving the problem

To prevent the warning message J2CA0075W from appearing, two options are available:


1. To simply suppress the warning messages from being logged to the SystemOut.log, do the following:

  • Open the <WEBSPHERE_HOME>\properties\j2c.properties file in a text editor
  • Find the following block:

    <!-- The cm-properties are in a comment block. Uncomment to use -->
    <!--
    <cm-properties>
    <manageCachedHandles>false</manageCachedHandles>
    <logMissingTranContext>true</logMissingTranContext>
    </cm-properties>
    -->

  • Remove the comments and change the true to false.

    It should look like the following once complete:

    <!-- The cm-properties are in a comment block. Uncomment to use -->
    <cm-properties>
    <manageCachedHandles>false</manageCachedHandles>
    <logMissingTranContext>false</logMissingTranContext>
    </cm-properties>

2. To resolve the underlying cause of the warning message:
  • Review the application code and determine where threads are created.
  • Evaluate how these threads use J2C connections.
  • Determine alternatives to this approach and not use these threads for J2C connection activity.

At this time, it is unclear as to whether future J2EE specifications or WebSphere Application Server releases will prevent creation of threads from web components.

It is recommended that applications not attempt to create and manage their own threads to obtain connections.

Possible problems which could arise with this behavior include:
  • Application server hang conditions
  • Leaking connections
  • Application server memory problems
The above list is not inclusive and other problems could result as well.

Cross reference information
Segment Product Component Platform Version Edition
Application Servers Runtimes for Java Technology Java SDK

Rate this page:

(0 users)Average rating

Add comments

Document information


More support for:

WebSphere Application Server
Java 2 Connectivity (J2C)

Software version:

5.1, 5.1.0.1, 5.1.0.2, 5.1.0.3, 5.1.0.4, 5.1.0.5, 5.1.0.6, 5.1.1, 5.1.1.1, 5.1.1.2, 5.1.1.3, 5.1.1.4, 5.1.1.5, 5.1.1.6, 5.1.1.7, 5.1.1.8, 5.1.1.9, 6.0, 6.0.0.2, 6.0.0.3, 6.0.1, 6.0.1.1, 6.0.1.2, 6.0.2, 6.0.2.1, 6.0.2.2, 6.0.2.3, 6.0.2.4, 6.0.2.5, 6.0.2.7

Operating system(s):

AIX, HP-UX, Linux, Solaris, Windows

Software edition:

Base, Enterprise, Express, Network Deployment, WebSphere Business Integrations Server Foundation

Reference #:

1231761

Modified date:

2006-03-03

Translate my page

Machine Translation

Content navigation