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

Reply via email to