J-Integra Support for Windows XP/2003 |
|
As stated in the related article JDKs and Platforms Supported by J-Integra, J-Integra is fully supported on the Windows XP and Windows Server 2003 platforms. However, there are some issues you should be aware of when using J-Integra on Windows XP/2003. Whether or not these issues will affect you depends on which version of J-Integra you are using.
Access Denied Error
Microsoft has added some DCOM security enhancements to Windows XP Service Pack 2 which may affect your J-Integra for COM application. Please see Configuring DCOM for Remote Access in the documentation for the specific DCOMCNFG instructions for Windows XP SP2.
For more information on the DCOM security enhancements in Microsoft Windows XP Service Pack 2, see Microsoft's Changes to Functionality in Microsoft Windows XP Service Pack 2.
Automation error: The stub received bad data.
If you are running a Visual Basic client, you may see this error...
Err.Number = -2147023113
Err.Description = "Automation error: The stub received bad data."
If you are running a Java client, you may see this error...
AutomationException: 0x800706f7 - in 'Invoke'
Problem Description
There are two instances when this error can occur.
- Microsoft changed the DCOM protocol in Windows XP/2003 which causes the above error to occur when a VB Object or variable is passed in as a parameter to a Java method. If an exception is thrown inside the Java code, it does not get passed back to VB correctly and the above error is displayed. This problem only occurs under the following conditions:
- Late binding is being used (early binding works normally).
- DCOM mode is being used (native mode works as expected).
- We have only seen this problem occur for VB clients. VC++ clients seem to behave normally.
- This error can also occur if you have installed Windows XP SP2. Microsoft changed the DCOM protocol (again) and J-Integra applications with the following characteristics are affected:
- The application is passing a VT_ARRAY of BSTR from Java to COM in DCOM mode (native mode works as expected).
- The application is passing a VT_CY|VT_BYREF (Currency byref) or VT_VARIANT|VT_BYREF (Variant byref) from Java to COM in DCOM mode (native mode works as expected).
Resolution
If your application is throwing the stub received bad data error, you will need to upgrade to the latest version of J-Integra. You can do so by joining the J-Integra Software Maintenance Plan.
Run-time error '-2147023113' (800706f7)
This error can occur if you are accessing a java.util.Vector or java.util.List as a VB Collection type. See Accessing Java objects as Visual Basic Collections for more details.
The problem can occur when a VB client contains a loop which uses the Next statement. For example, the following piece of VB code displays each element of a java.util.Vector object:
For Each elt In vector MsgBox elt Next |
The Run-time error '-2147023113' (800706f7) is raised when the Next statement loops past the last element of the java.util.Vector object. There are several workarounds for this problem. For example:
Dim i As Integer i = 0 Do MsgBox vector.elementAt(i) i = i + 1 Loop Until i = vector.Size |
Or this workaround...
Dim s s = vector.Size For i = 1 To s MsgBox vector.get(i - 1) Next |