Maybe you could return something in SR.AHTEST.CALL1 and try to run ahsub1.GetArg(1); before ahsub1.Dispose(); , so you can make sure the first subroutine has been finished before you run the second one.
Adrian Halid wrote: > > Yeah I tried the Dispose method after the Call but no luck there either. > > > > Adrian Halid > Senior Analyst/Programmer > > IT Vision Australia Pty Ltd (ABN: 34 309 336 904) > PO Box 881, Canning Bridge WA 6153 > Level 3, Kirin Centre, 15 Ogilvie Road, Applecross, WA, 6153 > P: (08) 9315 7000 F: (08) 9315 7088 > E: [email protected] W: http://www.itvision.com.au > > ___________________________________________________________ > > NOTICE : This e-mail and any attachments are intended for the addressee(s) > only and may > contain confidential or privileged material. Any unauthorised review, use, > alteration, > disclosure or distribution of this e-mail (including any attachments) by > an unintended recipient > is prohibited. If you are not the intended recipient please contact the > sender as soon as > possible by return e-mail and then delete both messages. > ___________________________________________________________ > > > -----Original Message----- > From: [email protected] > [mailto:[email protected]] On Behalf Of Hugh Yang > Sent: Thursday, 8 October 2009 12:51 PM > To: [email protected] > Subject: Re: [U2] UniObject .NET Session and Common Block Bug > > > Try "ahsub1.Dispose();" after "ahsub1.Call();" > > Regards > > > Adrian Halid wrote: >> >> Hi All, >> >> I am trying to call 2 subroutines using the same session in UniObject >> .NET >> but have an issue when the second subroutine Inserts a larger common >> block. >> >> I call the first subroutine without any issues. But when I call the >> second >> subroutine I get the following error. >> >> [IBM U2][UODOTNET - UNICLIENT][ErrorCode=30105] Unable to load the >> subroutine on the server >> >> I only have this issue in .NET and not in VB6. >> I believe that the .net UniSession is storing the Common Block variables >> and when I try to call another subroutine with a different common block >> it >> fails to load. >> >> I have read in another post on the web that people have created a Common >> Block loading subroutine to load all Common Blocks when they create the >> session. >> This way when ever they call any subroutine they know the common block >> does not increase. >> >> This seems a like a hack to me. >> >> I am worried that when ever a developer creates a new Common Block that >> they have to remember to update the Common Block loading Subroutine. >> Also we have thousands of Subroutines that may or may not include some >> common blocks. >> If a subroutine has the same variable name as a variable used in common >> block it does not insert will its value change. >> >> The other hack is to close and open the session every time I want to call >> a subroutine. >> But once again this is not suitable for my application. >> >> >> Here is my common blocks in universe >> --------------------- BP AH.COMMON1 ----------------------------------- >> COMMON AHCOMMON1 >> -------------------------------------------------------------------------------- >> >> --------------------- BP AH.COMMON2 ----------------------------------- >> COMMON AHCOMMON2 >> -------------------------------------------------------------------------------- >> >> Here are my two subroutines. >> --------------------- BP SR.AHTEST.CALL1 >> --------------------------------- >> SUBROUTINE SR.AHTEST.CALL1 >> $INSERT AH.COMMON1 >> RETURN >> END >> -------------------------------------------------------------------------------- >> >> --------------------- BP SR.AHTEST.CALL2 >> --------------------------------- >> SUBROUTINE SR.AHTEST.CALL2 >> $INSERT AH.COMMON1 >> $INSERT AH.COMMON2 >> RETURN >> END >> -------------------------------------------------------------------------------- >> >> Here is the C# .net code >> --------------------- C# .NET >> ------------------------------------------------ >> UniSession ahsession = UniObjects.OpenSession("HOST", >> "USERNAME", "PASSWORD", "ACCOUNT", "uvcs"); >> >> >> UniSubroutine ahsub1 = >> ahsession.CreateUniSubroutine("SR.AHTEST.CALL1", 0); >> ahsub1.Call(); // No Error on this call >> >> UniSubroutine ahsub2 = >> ahsession.CreateUniSubroutine("SR.AHTEST.CALL2", 0); >> try >> { >> ahsub2.Call(); // Throws and exception >> } >> catch (UniSubroutineException ex) >> { >> MessageBox.Show(ex.Message); //Displays [ErrorCode=30105] >> Unable to load the subroutine on the server >> >> } >> MessageBox.Show("Done"); >> -------------------------------------------------------------------------------- >> >> If I write the same code in VB6 using the UniObject for VB6 I get no >> errors >> --------------------- C# .NET >> ------------------------------------------------ >> >> Dim objSession As Object >> Set objSession = CreateObject("UniObjects.unioaifctrl") >> objSession.UserName = "USERNAME" >> objSession.Password = "PASSWORD" >> objSession.AccountPath = "ACCOUNT" >> objSession.HostName = "HOST" >> objSession.Connect >> >> Dim ahsub1 As Object >> Set ahsub1 = objSession.Subroutine("SR.AHTEST.CALL1", 0) >> ahsub1.Call >> >> Dim ahsub2 As Object >> Set ahsub2 = objSession.Subroutine("SR.AHTEST.CALL2", 0) >> ahsub2.Call >> >> MsgBox ("Done") >> -------------------------------------------------------------------------------- >> >> >> >> Adrian Halid >> Senior Analyst/Programmer >> >> IT Vision Australia Pty Ltd (ABN: 34 309 336 904) >> PO Box 881, Canning Bridge WA 6153 >> Level 3, Kirin Centre, 15 Ogilvie Road, Applecross, WA, 6153 >> P: (08) 9315 7000 F: (08) 9315 7088 >> E: [email protected] W: http://www.itvision.com.au >> >> ___________________________________________________________ >> >> NOTICE : This e-mail and any attachments are intended for the >> addressee(s) >> only and may >> contain confidential or privileged material. Any unauthorised review, >> use, >> alteration, >> disclosure or distribution of this e-mail (including any attachments) by >> an unintended recipient >> is prohibited. If you are not the intended recipient please contact the >> sender as soon as >> possible by return e-mail and then delete both messages. >> ___________________________________________________________ >> >> _______________________________________________ >> U2-Users mailing list >> [email protected] >> http://listserver.u2ug.org/mailman/listinfo/u2-users >> >> > > -- > View this message in context: > http://www.nabble.com/UniObject-.NET-Session-and-Common-Block-Bug-tp25797736p25798331.html > Sent from the U2 - Users mailing list archive at Nabble.com. > > _______________________________________________ > U2-Users mailing list > [email protected] > http://listserver.u2ug.org/mailman/listinfo/u2-users > _______________________________________________ > U2-Users mailing list > [email protected] > http://listserver.u2ug.org/mailman/listinfo/u2-users > > -- View this message in context: http://www.nabble.com/UniObject-.NET-Session-and-Common-Block-Bug-tp25797736p25848382.html Sent from the U2 - Users mailing list archive at Nabble.com. _______________________________________________ U2-Users mailing list [email protected] http://listserver.u2ug.org/mailman/listinfo/u2-users
