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

ID: Q192385


The information in this article applies to:
  • Microsoft SDK for Java, versions 2.0, 2.01, 2.02, 3.0


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:


  2. Q180468 BUG: Java Components Hang When Run in Transaction Server
  3. Create a simple Java class and package it up as an MTS server component.


  4. 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."


  5. 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


Last Reviewed: November 16, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.