应用系统在websphere5.1环境小运行,SystemOut.log 文件不断打出以下warming语句
[06-5-9 17:01:44:778 GMT+08:00] 3945f948 ConnectionMan W J2CA0075W: 处理方法 allocateMCWrapper 时应该存在活动的事务。
[06-5-9 17:01:44:803 GMT+08:00] 3945f948 ConnectionMan W J2CA0075W: 处理方法 initializeForUOW 时应该存在活动的事务。
websphere的文档解释如下:
***********************************************************
Cause
These messages are being produced due to an "unsupported" environment. When application has spun its own threads from an EJB, accessing a database is not supported (per the J2EE specification). If a Servlet is spinning its own threads and accessing a database, the J2EE specification is not clear on this, so WebSphere Application Server 5.0 will allow it at this time. IBM is working with Sun to clarify this in the specification, so eventually (i.e. J2EE 1.4) spun threads from a Servlet accessing a database outside of a transaction will not be supported either.
Since we don't want to promote the usage of these "naked" threads accessing databases, we are producing the warning messages. Although they may be filling up the logs, we feel that these are necessary to warn the user that they are doing something not in-line with the intended usage. Customers should consider changing their application to comply with the
J2EE specification.
Solution
The temporary fix to suppress these warning messages from log file is to modify the file j2c.properties which can be found in the $WAS_HOME/properties directory ($WAS_HOME is the directory where WebSphere Application Server 5.0.x is installed) and
add the following line to the file:
false
***********************************************************
具体原因就是在websphere环境下如果从非WebSphere创建的线程(如servlet)中访问datasource的Connection的话,将给出以上警告。消除该警告的方法参考上文的方法。