BUG: Java Client Using an MTS/Java Server Hangs During GC

ID: Q192385

The information in this article applies to:

SYMPTOMS

When using a Java client to interact with a Microsoft Transaction Server (MTS) object that is also implemented in Java, the process may deadlock when garbage collection (GC) occurs.

CAUSE

A GC bug caused a hang when the GC heap was greater than 16 MB and was trying to grow.

STATUS

Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article.

MORE INFORMATION

Steps to Reproduce Behavior

1. Install the MTS hotfix mentioned in the following article in the

   Microsoft Knowledge Base on your machine:

      ARTICLE-ID: Q180468
      TITLE     : BUG: Java Components Hang When Run in Transaction Server

2. Create a simple Java class and package it up as an MTS server component.

3. Install the Java class into a package and set the package activation

   type to Library Package instead of the default (Server Package). This
   changes the server type from LocalServer to InprocServer and changes the
   threading type to "Free."

4. In the implementation of the Java client, call System.gc() after using
   the MTS/Java component, and ComLib.release()ing it.

When running multiple instances of the Java client the process will hang.

REFERENCES

For the latest Knowledge Base articles and other support information on Visual J++ and the SDK for Java, see the following pages on the Microsoft Technical Support site:

   http://support.microsoft.com/support/visualj/ 
   http://support.microsoft.com/support/java/ 

Additional query words:
Keywords          : kbJava 
Version           : WINDOWS:2.0,2.01,2.02,3.0
Platform          : WINDOWS
Issue type        : kbbug
Solution Type     : kbpending

Last Reviewed: September 5, 1998