Skip to Content
author's profile photo Former Member
Former Member

JCA Performance

I'm developing a JSP DynPage using JCA to access RFMs in R/3. The JSP DynPage model is basically: doInitialization

then iterate through doProcessBeforeOutput, doProcessBeforeInput, and react to any event processing triggered by JSP. And, use a bean to store any persistent data.

My question is this as it relates to JCA: for a high volume environment, is it better to acquire a ConnectorService, ConnectionProperties, Client, etc. during doInitialization and store them in a bean for reuse, or acquire them each time ( in doProcessBeforeOutput for example)?

All the examples I've seen thus far perform the latter, but I would like to know if this is the recommended approach. I haven't been able to locate any documentation which describes the overhead associated with JCA session management.

Thanks.

Mark

Add a comment
10|10000 characters needed characters exceeded

Related questions

2 Answers

  • author's profile photo Former Member
    Former Member
    Posted on Sep 28, 2005 at 02:46 PM

    > is it better to acquire a

    > ConnectorService, ConnectionProperties, Client, etc.

    > during doInitialization and store them in a bean for

    > reuse, or acquire them each time ( in

    > doProcessBeforeOutput for example)?

    Personally, I wouldn't hold any of these references.

    The connection object itself is pooled, so the overhead of getting the service and asking for a connection for each request with a backend query should be rather little.

    Regards, Karsten

    Add a comment
    10|10000 characters needed characters exceeded

  • Posted on Sep 28, 2005 at 02:50 PM

    Hi Mark,

    Yes the good practice for acquiring the ConnectorService, ConnectionProperties, Client etc is durind the <b>doProcessBeforeOutput</b> fucntion. The reason is very simple, when you create a bean in the doInitialization and store the service objects for future use then in the large volume environment it can lead to resource inavailablity state.

    These objects will be in use since they are allocated to the class that is still running so it cannot be used by other services. If the class which has stored these objects in the bean is not using these service objects then its just a wastage of saving them for it. In the mean time these service object can be allocated to some other resource.

    So its better to aquire these objects when ever we need them and then free them when we are done. This is the same concept as that of pooling.

    I hope this will help you.

    Regards

    Pravesh

    Add a comment
    10|10000 characters needed characters exceeded

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.