Jochen,

my comment in +++> ... <+++ below

-----Ursprüngliche Nachricht-----
Von: Jochen Zink [mailto:[EMAIL PROTECTED]
Gesendet: Mittwoch, 14. März 2007 12:28
An: [email protected]
Betreff: Re: [axis2] session management fails with invalidServiceGroupID
Exception


I use soapsession scope.


I'm sure that every client invokes a creation of a new ServicesClass. I control 
it with hashcodes of the instances. Every client talks to another instance. A 
single client talks, every method call to is own Service Instance.

The Timeout on the service is set to 30000.

After the first method call, the Client waits 40seconds before he calls the 
next method.



+++> Jochen, can you check that the message sent with the 2nd call of client#1 
which has timed-out still sends the ServiceGroupId? 

        also we migth talk about similar not exactly equal problems.

does your clinet#1 second message look similar like (carry a ServiceGroupID)?

- <soapenv:Header>
  <wsa:To>http://www.w3.org/2005/08/addressing/anonymous</wsa:To> 
- <wsa:ReplyTo>
  <wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address> 
- <wsa:ReferenceParameters>
  <axis2:ServiceGroupId 
xmlns:axis2="http://ws.apache.org/namespaces/axis2";>urn:uuid:AEDE11BE4497D9478F117316759348254</axis2:ServiceGroupId>
 
  </wsa:ReferenceParameters>
  </wsa:ReplyTo>
  <wsa:MessageID>urn:uuid:AEDE11BE4497D9478F117316759399760</wsa:MessageID> 
  <wsa:Action>urn:echo</wsa:Action> 
  <wsa:RelatesTo 
wsa:RelationshipType="http://www.w3.org/2005/08/addressing/reply";>urn:uuid:C1D5F6754451BC782111731675939823</wsa:RelatesTo>
 
  </soapenv:Header>


if a ServiceGroupID is sent to a timed-out service-object in a ServiceGroup 
your initial fault should show up.

if no ServiceGroupId is sent, that would explain why no fault "invalid Service 
Group ID", is raised.
in this case, I would expect that a new ServicegroupID is created and that the 
old ServiceGroupID is removed and hence destroy() is called on the first 
service-object. is this the case?

And the question to the developers would remain: is this intended behaviour? 

Josef <+++





The servers log messages are:
init                                      [EMAIL PROTECTED]
openTransferSession         [EMAIL PROTECTED]
// Here is the client waiting
closetransferSession         [EMAIL PROTECTED]
       last touching Time 40031



As you can see, it is always the same Instance.

The strange thing is, if I invoke another client, the service Instance of the 
first client should be destroyed after the 30 seconds.




Example:
Client1.firstMethod:
Client1.wait:
Client2.firstMethod:
Know, the destroy Method is invoked
Client 2.wait:
Client1.secondMethod: 

java.lang.NullPointerException
        at 
org.apache.axis2.context.MessageContext.isHeaderPresent(MessageContext.java:1054)
        at 
org.apache.axis2.handlers.addressing.AddressingInHandler.invoke(AddressingInHandler.java:72)
        at org.apache.axis2.engine.Phase.invoke(Phase.java:382)
        at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:522)
        at org.apache.axis2.engine.AxisEngine.receiveFault(AxisEngine.java:600)
        at 
org.apache.axis2.description.RobustOutOnlyAxisOperation$RobustOperationClient.send(RobustOutOnlyAxisOperation.java:99)
        at 
org.apache.axis2.description.OutInAxisOperationClient.execute(OutInAxisOperation.java:202)
        at 
de.nepatec.edocbox.comserver.client.DocumentTransferServiceStub.closeTransferSession(DocumentTransferServiceStub.java:561)
        at de.nepatec.edocbox.comserver.client.Client.run(Client.java:99)

Client2.secondMethod: Works fine, but the TimeOut is expired.

A session runs only in timeout, if a other client invokes his own Instance. Do 
you understnad what I mean?!

The log messages on the server wich printent with invoking  the above example

init                              [EMAIL PROTECTED]
openTransferSession  [EMAIL PROTECTED]
destroy                       [EMAIL PROTECTED]
init                               [EMAIL PROTECTED]
openTransferSession  [EMAIL PROTECTED]
transferDocument       [EMAIL PROTECTED]
closetransferSession   [EMAIL PROTECTED]
       last touching Time 50016


+++> Yes, I have seen the same sequence, destroy() before init() but on two 
different service-objects,

in case you reset the axis2 value to 30 then you have nearly constant a 
time-out condition, as explained by rob, which made my client#n fail as soon as 
client#n+1 was starting. Since axis2.xml raised this value to 30000 this my 
problem is gone, and perhaps similra problems too.

Josef <+++





The Client Code is like this:

ConfigurationContext ctx = 
ConfigurationContextFactory.createConfigurationContextFromFileSystem("repos", 
"repos/conf/axis2.xml");
            
DocumentTransferServiceStub serviceStub = new DocumentTransferServiceStub(
                    ctx, 
                    
"http://localhost:8080/comchannel/services/DocumentTransferService";);
                
 serviceStub._getServiceClient().getOptions().setManageSession(true);
 
serviceStub._getServiceClient().getOptions().setProperty(Constants.Configuration.ENABLE_MTOM,
 Constants.VALUE_TRUE);
serviceStub._getServiceClient().getOptions().setTimeOutInMilliSeconds(100000);
            
           
            
 DocumentTransferServiceStub.OpenTransferSession open = new 
DocumentTransferServiceStub.OpenTransferSession();
            
 // ... some stuff
            
// call first method
serviceStub.openTransferSession(open);

// wait 40 seconds            
Thread.sleep(40000);
// call next Method
serviceStub.closeTransferSession();


Thanks!


> -----Ursprüngliche Nachricht-----
> Von: [email protected]
> Gesendet: 14.03.07 11:32:46
> An: <[email protected]>
> Betreff: AW: [axis2] session management fails with invalidServiceGroupID   
> Exception


> Jochen
> 
> **** BTW - what scope= are you using? The original problem I had was with 
> scope=soapsession only. 
> 
> with scope=application your talking to only one instance of your 
> service-class and not to a statefull-objects.
> 
>  
> 
> The problem with the invalidServiceGroupeContextID is because after timeout 
> the ID is no longer valid!
> 
> client-threads calling afterr timeoutn with the same previous used 
> sender-handle will because they send the wrong timed out ID
> client-threads calling with a fresh sender-handle will not fail because the 
> do not pass an ID but receive one in the reply-message
> 
> 
> 
> Regarding Instances of Service Classes (also called statefull-Objects, 
> objects are instances of a class) be sure that you can cleanly 
> tell a) when you talk to different instances of a service-object (instance of 
> a service-class) or b) when you talk to the same instance of a service-object 
> (singelton).
> 
> Sometimes just a matter of having certain variables defined as static, and 
> since variables in jave defined static are shared among objects!
> 
> I was once running into the same trap. Be aware that you know the real 
> instance your talking to, maybe identify each object by unique hash value or 
> UUID.
> 
> Josef
> 
> 
> 
> 
> -----Ursprüngliche Nachricht-----
> Von: Jochen Zink [mailto:[EMAIL PROTECTED]
> Gesendet: Mittwoch, 14. März 2007 10:40
> An: [email protected]
> Betreff: Re: [axis2] session management fails with invalidServiceGroupID
> Exception
> 
> 
> A big Thank you!!!! I don't believe it... in axis2.xml the 
> ConfigContextTimeout are milliseconds and not seconds like the comment tells.
> 
> But... there is another thing, which I don't understand.
> 
> Know, the ConfigContextTimeout Parameter has the value 30000 (30seconds). 
> 
> My client invokes the login method, sleeps 60000 milliseconds (1min) and 
> after this wait period, it invokes a second method. It works... but why?! 
> Normally I think, the session run into a timeout. The client has not touch 
> the service over a minute and can successfully call a method. ... 
> 
> Thanks!
> 
> 
> 
> > -----Ursprüngliche Nachricht-----
> > Von: [email protected]
> > Gesendet: 14.03.07 10:19:22
> > An: <[email protected]>
> > Betreff: AW: [axis2] session management fails with invalidServiceGroupID  
> > Exception
> 
> 
> > Hi Jochen,
> > 
> > Maybe you have the same problem then I had. 
> > For that I have had logged a JIRA and meanwhile it' sfixed. Look at  
> > 
> > 
> >     [ 
> > https://issues.apache.org/jira/browse/AXIS2-1991?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
> >  ]
> > 
> > 
> > and more in the e-mail thread at
> > 
> >     http://marc.theaimsgroup.com/?l=axis-user&m=117316427720305&w=2
> > 
> > 
> > I hope for you that it is that easy to fix your problem.
> > 
> > Regards
> > Josef
> > 
> > 
> > 
> > -----Ursprüngliche Nachricht-----
> > Von: Jochen Zink [mailto:[EMAIL PROTECTED]
> > Gesendet: Mittwoch, 14. März 2007 10:01
> > An: [email protected]
> > Betreff: [axis2] session management fails with invalidServiceGroupID
> > Exception
> > 
> > 
> > Hello at all,
> > 
> > I have a session based Webservice with three Methods. A client has 2 
> > threads with 2 different clients, which use the webservice. Only the second 
> > client can invoke more than the first method of the service.
> > 
> > Example:
> > Client 1 invoke Method login -> everything okay.
> > Client 2 invole Method login -> invoking works fine BUT on the service 
> > class, that is created by the call of client 1, the destroy method is called
> > 
> > Client 1 invokes method transfer -> The following exception is thrown on 
> > client side:
> > org.apache.axis2.AxisFault: Invalid Service Group Id 
> > urn:uuid:4489A6CEFA71AF964F1173862161488
> >     at 
> > org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:271)
> >     at 
> > org.apache.axis2.description.OutInAxisOperationClient.execute(OutInAxisOperation.java:202)
> >     at 
> > de.nepatec.edocbox.comserver.client.DocumentTransferServiceStub.transferDocument(DocumentTransferServiceStub.java:212)
> >     at de.nepatec.edocbox.comserver.client.Client.run(Client.java:84)
> > 
> > Client 2 invokes Method transfer -> everything okay
> > 
> > 
> > It seems that only the last instance of the service class is alive. 
> > 
> > The service is correct state full. With only one client, all member 
> > attributes are available over all method calls.
> > 
> > Here is the services.xml:
> > <service name="DocumentTransferService" scope="soapsession">
> >             
> >             <parameter name="enableMTOM" locked="false">true</parameter>
> >             
> >     
> >             <!-- Message Receivers -->
> >             
> >             <parameter locked="false" name="ServiceClass">
> >                     
> > de.nepatec.edocbox.comserver.comchannel.serviceimpl.DocumentTransferServiceSkeleton
> >             </parameter>
> >             
> >                 <!-- Operations -->
> > 
> >             
> >     </service>
> > </serviceGroup>
> > 
> > In the servers axis2.xml addressing module is engaged. 
> > 
> > On client side the Sessionmanagement is enabled:
> >  serviceStub._getServiceClient().getOptions().setManageSession(true);
> > 
> > 
> > 
> > I found the same problem in the mailinglist ( 
> > http://marc.theaimsgroup.com/?t=116282349800006&r=1&w=2) but without a 
> > solution.
> > 
> > Is this a axis2 Bug or did I something wrong? What can I do, to have a 
> > session based webservice that can handle mutltiple clients? 
> > 
> > Thanks for all!
> > 
> > 
> > 
> > _______________________________________________________________________
> > Viren-Scan für Ihren PC! Jetzt für jeden. Sofort, online und kostenlos.
> > Gleich testen! http://www.pc-sicherheit.web.de/freescan/?mc=022222
> > 
> > 
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> > 
> > 
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> > 
> > 
> 
> 
> _________________________________________________________________________
> In 5 Schritten zur eigenen Homepage. Jetzt Domain sichern und gestalten! 
> Nur 3,99 EUR/Monat! http://www.maildomain.web.de/?mc=021114
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 


_______________________________________________________________________
Viren-Scan für Ihren PC! Jetzt für jeden. Sofort, online und kostenlos.
Gleich testen! http://www.pc-sicherheit.web.de/freescan/?mc=022222


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to