Visiting stateless services again


I was going thru the docs about “Maintaining the State of a Service” in Developer Guide(page 125).
The doc says

A service that is an atomic unit of work does not to need to have its session object maintained when it is finished executing. For performance reasons, you may want to configure these types of services to run in “stateless” mode. Services that run in “stateless” mode use fewer resources and do not consume a licensed seat on webMethods Integration Server.

I had seen many posts in the forum regarding this issue. The more I understood the more I am confused.

I would highly appreciate it if somebody could answer by questions based on this example.

Lets say my IS server contains 10 services. Lets number them as service1…service10. Lets say a remote user connects to my IS server thru http on my service1. I need the name of the user in my other services but does not need any other session information. Lets consider that service1 calls service2 and service3. service2 calls service4. service 4 calls service5. Well I just wanted to create more than one level in my calls

Lets also assume that the rest of the five services are scheduled services or other services that does not get part of this call chain.

Now we know that by default all the services are set as “statefull”. We sure do not want to make all these 10 services as “stateless”.

So we make service1 as stateless. Ok that should save our one license now. No session info is stored.

Now what happens when service1 calls service2. Would it not pass the imaginary session info to service2 since service2 is statefull. Fine lets say that it wont since service1 does not have one, what about service2 calling service4. Both these services are stateful so wont they try to pass whatever session info they could come up with.

Question 1. Would it be a good idea if I make all the called services like services1…service5 as stateless if that would save on resource.

Question 2. What would be the problem if I make all my services stateless other than the fact that they would loose session info between them.

Question 3. Should I only look at releasing one license by making the service1 as stateless and keep everything else as default. (ie statefull)

Thanking you all who are participating in this thread