[omniORB] -ORBclientTimeOutPeriod Bug When The Server Uses A Location Forwa rd Request?

Wilson Jimmy - jiwils Jimmy.Wilson@acxiom.com
Tue, 14 May 2002 13:38:23 -0500


This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

------_=_NextPart_000_01C1FB76.87146CE0
Content-Type: text/plain; charset="iso-8859-1"

I've written a sample client to an Orbix 3.0.1 service.  It works fine when
the server behaves normally.

I added some code to the client that sets the client time out period, but it
does not appear to work with Orbix.  This same setting seems to work with
ORBs.  I do not think that this is an Orbix problem per se because Orbix
uses location forward requests, and they (I think) may be the source of the
problem.

The attached client works fine when the server is set to behave
appropriately.  When the Orbix server is set to sleep for 25 seconds or so
in the middle of an invocation, the client never times out.

Does anyone know if this is a problem or not?  I can (and will probably)
write an omniORB server that uses location forward requests to see if I can
replicate this behavior, but I don't have one currently.  I was hoping that
someone had already run into this problem (or at least knew it existed)
before I take the time to try and prove it.

Any thoughts?

Jimmy
-- 
James "Jimmy" Wilson
Software Developer, Acxiom Corporation

 <<ErrorService.py>> 


********************************************************************

The information contained in this communication is
confidential, is intended only for the use of the recipient
named above, and may be legally privileged.
If the reader of this message is not the intended
recipient, you are hereby notified that any dissemination, 
distribution, or copying of this communication is strictly
prohibited.
If you have received this communication in error,
please re-send this communication to the sender and
delete the original message or any copy of it from your
computer system. Thank You.


------_=_NextPart_000_01C1FB76.87146CE0
Content-Type: application/octet-stream;
	name="ErrorService.py"
Content-Disposition: attachment;
	filename="ErrorService.py"

"""
ErrorService.py

Test script for the error service.
"""

import string
import sys
import omniORB
import CORBA
import ErrorService

GenericErrorURI = "corbaloc:iiop:%host%:1570/:%5c%host%:ErrorServer:0::IFR:ErrorService_ErrorServiceFactory%00"

# get input parameters
CORBAHostName = raw_input("Enter the host name of the error service: ")
SnapinName = raw_input("Enter the snapin name: ")
SnapinVersion = raw_input("Enter the snapin version: ")

# get an error service factory object reference
orb = CORBA.ORB_init(['', '-ORBclientCallTimeOutPeriod', '5'], CORBA.ORB_ID)
ErrorServiceFactoryObj = orb.string_to_object(string.replace(GenericErrorURI, "%host%", CORBAHostName))
ErrorServiceFactory = ErrorServiceFactoryObj._narrow(ErrorService.ErrorServiceFactory)
del ErrorServiceFactoryObj

# create a snapin error data object reference
SnapinErrorDataObj = None
SnapinErrorData = None

try:
	SnapinErrorDataObj = ErrorServiceFactory.Create("SnapinErrorData")
	SnapinErrorData = SnapinErrorDataObj._narrow(ErrorService.SnapinErrorData)
	del SnapinErrorDataObj
	
except:
	print "Failed to create snapin error data object reference."
	sys.exit(1)
	

# get the extended error information for the input parameters
seqErrorData = None

try:
	seqErrorData = SnapinErrorData.GetErrorData(SnapinName, SnapinVersion)
except:
	SnapinErrorData.Release()
	print "Call to GetErrorData failed."
	sys.exit(1)

print "Extended Error Data For %s %s" % (SnapinName, SnapinVersion)

for structErrorData in seqErrorData:
	print "Error Code: %d" % (structErrorData.nErrorCode)
	print "Severity: %s" % (structErrorData.strSeverity)
	print "Description: %s" % (structErrorData.strDescription)
	print "Action: %s" % (structErrorData.strAction)
	print ""

try:
	SnapinErrorData.Release()
except:
	pass

# shutdown the connection
del seqErrorData
del ErrorServiceFactory
del SnapinErrorData
orb.destroy()
del orb
------_=_NextPart_000_01C1FB76.87146CE0--