Hi,

I did some further research on the time that OpenEJB takes to startup when the 
number of EJB's are large.
It seems the maximum time is taken during
JACCBuilder.build and JACCBuilder.install

I read up a little on JACC and the reason for the large time is that it goes 
through each EJB's, every method to build the PolicyContext object and 
permissions list.

I was wondering, if I could make my own JACC Provider that did not do all of 
this , as for my use-case we would not need to do permission checking(It can be 
totally permissive, i.e. allow anyone to access an EJB method).

Any tips, on how to make a JACC Provider and use it with OpenEJB would be 
really helpful.
Alternatively, if someone has made a quick and dirty dummy JACC Provider(even 
for testing), it would be great if they can share the source code for that.

Cheers,
Vikrant



-----Original Message-----
From: Quintin Beukes [mailto:quin...@skywalk.co.za]
Sent: Tuesday, September 08, 2009 8:21 PM
To: users@openejb.apache.org
Subject: Re: OpenEJB Startup Performance

When it pauses for those 30 seconds, is the last line printed the
"Assembling app" line?

Q

On Tue, Sep 8, 2009 at 4:34 PM, Vikrant Yagnick
<vikrant.yagn...@mastek.com> wrote:
> Not sure if this email reached the lists, sending again.....
> -----Original Message-----
> From: Vikrant Yagnick
> Sent: Tuesday, September 08, 2009 7:45 PM
> To: Vikrant Yagnick; 'users@openejb.apache.org'
> Subject: RE: OpenEJB Startup Performance
>
> Sorry,
>
> Not sure if the mail-list allows attachments. I am attaching relevant 
> sections (Highlighting things that seem to take time using ************) :
>
>
> 2009-09-08 19:29:53,319 - INFO  - openejb.home = 
> D:\mobileclient\mobile_client_oc4j\j2ee\mobileclient\applications\mobileclient\eElixir\WEB-INF
> 2009-09-08 19:29:53,319 - INFO  - openejb.base = 
> D:\mobileclient\mobile_client_oc4j\j2ee\mobileclient\applications\mobileclient\eElixir\WEB-INF
> 2009-09-08 19:29:53,896 - INFO  - Using 'openejb.validation.skip=false'
> 2009-09-08 19:29:55,146 - INFO  - Configuring Service(id=Default Security 
> Service, type=SecurityService, provider-id=Default Security Service)
> 2009-09-08 19:29:55,146 - INFO  - Configuring Service(id=Default Transaction 
> Manager, type=TransactionManager, provider-id=Default Transaction Manager)
> 2009-09-08 19:29:55,146 - INFO  - Configuring Service(id=My Unmanaged 
> DataSource, type=Resource, provider-id=Default JDBC Database)
> 2009-09-08 19:29:55,146 - INFO  - Configuring Service(id=My JMS Resource 
> Adapter, type=Resource, provider-id=Default JMS Resource Adapter)
> 2009-09-08 19:29:55,162 - INFO  - Configuring Service(id=EElixirDS, 
> type=Resource, provider-id=Default JDBC Database)
> 2009-09-08 19:29:55,162 - INFO  - Configuring Service(id=MAYBANSYS, 
> type=Resource, provider-id=Default JDBC Database)
> 2009-09-08 19:29:55,162 - INFO  - Configuring Service(id=My JMS Connection 
> Factory, type=Resource, provider-id=Default JMS Connection Factory)
> 2009-09-08 19:29:55,162 - INFO  - Configuring Service(id=My CMP Container, 
> type=Container, provider-id=Default CMP Container)
> 2009-09-08 19:29:55,177 - INFO  - Configuring Service(id=My BMP Container, 
> type=Container, provider-id=Default BMP Container)
> 2009-09-08 19:29:55,177 - INFO  - Configuring Service(id=My Stateful 
> Container, type=Container, provider-id=Default Stateful Container)
> 2009-09-08 19:29:55,177 - INFO  - Configuring Service(id=My Stateless 
> Container, type=Container, provider-id=Default Stateless Container)
> 2009-09-08 19:29:55,177 - INFO  - Configuring Service(id=My MDB Container , 
> type=Container, provider-id=Default MDB Container)
> ************************2009-09-08 19:29:57,427 - INFO  - Configuring 
> enterprise application: 
> D:\mobileclient\mobile_client_oc4j\j2ee\mobileclient\applications\mobileclient\eElixir\WEB-INF\classes
> ************************2009-09-08 19:30:22,748 - WARN  - WARN ... 
> OccupationExtraEJB:  Unused ejbCreate method: ejbCreate()
> 2009-09-08 19:30:22,748 - WARN  - WARN ... PremiumMasterEJB:    Unused 
> ejbCreate method: ejbCreate()
> 2009-09-08 19:30:22,748 - WARN  - WARN ... ProductBaseEJB:      Unused 
> ejbCreate method: ejbCreate()
> 2009-09-08 19:30:22,748 - WARN  - WARN ... ProductCombinationEJB:       
> Unused ejbCreate method: ejbCreate()
> 2009-09-08 19:30:22,748 - WARN  - WARN ... RidersWaivedEJB:     Unused 
> ejbCreate method: ejbCreate()
> 2009-09-08 19:30:22,764 - WARN  - WARN ... StatusEJB:   Unused ejbCreate 
> method: ejbCreate()
> 2009-09-08 19:30:22,764 - WARN  - WARN ... CHMInterfaceEJB:     Unused 
> ejbCreate method: ejbCreate()
> 2009-09-08 19:30:22,764 - WARN  - WARN ... ILinkPolicyEJB:      Unused 
> ejbCreate method: ejbCreate()
> 2009-09-08 19:30:22,764 - WARN  - WARN ... PCG8DividendEJB:     Unused 
> ejbCreate method: ejbCreate()
> 2009-09-08 19:30:22,764 - WARN  - WARN ... PCG8DividendEJB:     Unused 
> ejbPostCreate method: 
> ejbPostCreate(com.mastek.eElixir.finance.common.helper.PCG8Dividend)
> 2009-09-08 19:30:22,764 - WARN  - WARN ... BenefitRateEJB:      Unused 
> ejbCreate method: ejbCreate()
> 2009-09-08 19:30:22,764 - WARN  - WARN ... CommissionRuleEJB:   Unused 
> ejbCreate method: ejbCreate()
> 2009-09-08 19:30:22,764 - WARN  - WARN ... AdjustmentEJB:       Unused 
> ejbCreate method: ejbCreate()
> 2009-09-08 19:30:22,764 - WARN  - WARN ... RINPremiumMasterEJB: Unused 
> ejbCreate method: ejbCreate()
> 2009-09-08 19:30:22,764 - INFO  - Enterprise application 
> "D:\mobileclient\mobile_client_oc4j\j2ee\mobileclient\applications\mobileclient\eElixir\WEB-INF\classes"
>  loaded.
> 2009-09-08 19:30:22,764 - INFO  - Using 'openejb.deployments.classpath=false'
> 2009-09-08 19:30:22,764 - INFO  - Creating TransactionManager(id=Default 
> Transaction Manager)
> 2009-09-08 19:30:23,076 - INFO  - Creating SecurityService(id=Default 
> Security Service)
> 2009-09-08 19:30:23,138 - INFO  - Creating Resource(id=My Unmanaged 
> DataSource)
> 2009-09-08 19:30:23,201 - INFO  - Creating Resource(id=EElixirDS)
> 2009-09-08 19:30:23,263 - INFO  - Creating Resource(id=MAYBANSYS)
> 2009-09-08 19:30:23,263 - INFO  - Creating Resource(id=My JMS Resource 
> Adapter)
> 2009-09-08 19:30:24,294 - INFO  - Creating Resource(id=My JMS Connection 
> Factory)
> 2009-09-08 19:30:24,310 - INFO  - Creating ConnectionManager for 
> Resource(id=My JMS Connection Factory)
> 2009-09-08 19:30:24,404 - INFO  - Creating Container(id=My CMP Container)
> 2009-09-08 19:30:24,482 - INFO  - Creating Container(id=My BMP Container)
> 2009-09-08 19:30:24,529 - INFO  - Creating Container(id=My Stateful Container)
> 2009-09-08 19:30:24,966 - INFO  - Creating Container(id=My Stateless 
> Container)
> 2009-09-08 19:30:24,997 - INFO  - Creating Container(id=My MDB Container )
> ************************************2009-09-08 19:30:25,013 - INFO  - 
> Assembling app: 
> D:\mobileclient\mobile_client_oc4j\j2ee\mobileclient\applications\mobileclient\eElixir\WEB-INF\classes
> ********************************2009-09-08 19:31:55,488 - INFO  - Using 
> 'openejb.jndiname.format={interfaceClass}'
> 2009-09-08 19:31:55,582 - INFO  - 
> Jndi(name=com.mastek.eelixirinterfaceservice.common.ejb.sessionbean.TSARCheckSLLocalHome)
>  --> Ejb(deployment-id=TSARCheckSLEJB)
> 2009-09-08 19:31:55,582 - INFO  - 
> Jndi(name=com.mastek.eelixirinterfaceservice.common.ejb.sessionbean.MGCCCommonSLHome)
>  --> Ejb(deployment-id=MGCCCommonSLEJB)
> 2009-09-08 19:31:55,597 - INFO  - 
> Jndi(name=com.mastek.eElixir.product.takaful.ejb.session.TakafulSLLocalHome) 
> --> Ejb(deployment-id=TakafulSLEJB)
> 2009-09-08 19:31:55,597 - INFO  - 
> Jndi(name=com.mastek.eElixir.policyservicing.TakafulTopUp.ejb.sessionbean.TakafulTopUpSLLocalHome)
>  --> Ejb(deployment-id=PSTakafulTopUpSLEJB)
> 2009-09-08 19:31:55,597 - INFO  - 
> Jndi(name=com.mastek.eElixir.reports.ejb.sessionbean.ReportSLHome) --> 
> Ejb(deployment-id=ReportSLEJB)
>
> ............................A lot more of JNDI Names ....followed 
> by...................
> 2009-09-08 19:31:58,034 - INFO  - Created 
> Ejb(deployment-id=CommissionRuleEJB, ejb-name=CommissionRuleEJB, container=My 
> BMP Container)
> 2009-09-08 19:31:58,034 - INFO  - Created Ejb(deployment-id=CatastropheEJB, 
> ejb-name=CatastropheEJB, container=My BMP Container)
> 2009-09-08 19:31:58,034 - INFO  - Created 
> Ejb(deployment-id=BillingFrequencySLEJB, ejb-name=BillingFrequencySLEJB, 
> container=My Stateless Container)
> 2009-09-08 19:31:58,034 - INFO  - Created 
> Ejb(deployment-id=UnclaimedMoneyPVSLEJB, ejb-name=UnclaimedMoneyPVSLEJB, 
> container=My Stateless ........................Lots of 
> these................and in the end...................
> 2009-09-08 19:31:58,565 - INFO  - Created Ejb(deployment-id=ProductPrmMapEJB, 
> ejb-name=ProductPrmMapEJB, container=My BMP Container)
> 2009-09-08 19:31:58,565 - INFO  - Created Ejb(deployment-id=ClawbackEJB, 
> ejb-name=ClawbackEJB, container=My BMP Container)
> 2009-09-08 19:31:58,612 - INFO  - Deployed 
> Application(path=D:\mobileclient\mobile_client_oc4j\j2ee\mobileclient\applications\mobileclient\eElixir\WEB-INF\classes)
>
>
>
> -----Original Message-----
> From: Vikrant Yagnick
> Sent: Tuesday, September 08, 2009 7:38 PM
> To: users@openejb.apache.org
> Subject: RE: OpenEJB Startup Performance
>
> Hi Quintin,
>
> Here is a typical startup log. There are a lot of EJB's for sure, but 
> significant time is taken while assembling the app. (Is that when it searches 
> for the EJB classes?)
>
> Cheers,
> Vikrant
>
> -----Original Message-----
> From: Quintin Beukes [mailto:quin...@skywalk.co.za]
> Sent: Tuesday, September 08, 2009 7:15 PM
> To: users@openejb.apache.org
> Subject: Re: OpenEJB Startup Performance
>
> Like mentioned.
>
> Can you perhaps send us a log output of when OpenEJB starts up.
>
> Q
>
> On Tue, Sep 8, 2009 at 2:50 PM, Vikrant Yagnick <vikrant.yagn...@mastek.com> 
> wrote:
>> Hi All,
>>
>> Thanks for the replies.
>>
>> We already have a ejb-jar.xml since we have been using EJB 2.1(not 3.0 
>> unfortunately...:().
>> The number of EJB's are going to remain pretty static since it has already 
>> been developed.
>>
>> This won't really be that big a problem in Production, as once openejb 
>> initializes there is no more delay. I need to figure out a way to initialize 
>> it automatically when the main container starts-up (rather than on the first 
>> request to the application).
>
>
>
>>
>> The pain really is while we are in development as for any small change 
>> requiring a container re-start openEJB needs to re-create the entire 
>> application assembly.
>>
>> We initialize openEJB using openejb.conf and set the following:
>> <Deployments dir="classes" />
>>
>> The "classes" folder contains a META-INF folder which in-turn has the 
>> ejb-jar.xml.
>>
>> I apologize if this sounds like a real newbie question, but is there a 
>> better way for us to do this?
>>
>> Cheers,
>> Vikrant
>>
>> -----Original Message-----
>> From: Jonathan Gallimore [mailto:jonathan.gallim...@gmail.com]
>> Sent: Tuesday, September 08, 2009 6:01 PM
>> To: users@openejb.apache.org
>> Subject: Re: OpenEJB Startup Performance
>>
>> On Mon, Sep 7, 2009 at 10:30 PM, Quintin Beukes <quin...@skywalk.co.za>wrote:
>>
>>> Hey,
>>>
>>> I'm no EJB master either, but I can answer your questions with what I
>>> do know.
>>>
>>> 1. Perfectly fine. If you run it in something like Geronimo, it's
>>> basically just embedded in Geronimo. Your web server is nothing more
>>> than a Java Application, and OpenEJB has 2 modes, Standalone and
>>> Embedded (I think there is another one I can't recall). So you're
>>> just initializing the OpenEJB application inside your VM, and have
>>> the same stability/functionality provided in any other mode. In fact,
>>> I would recommend doing this with OpenEJB any day.
>>>
>>
>> This is absolutely right, it should work fine for you, and will
>> basically just run like the Embedded container. I do this at work for
>> the day job - we functionally test our app using Jetty and OpenEJB,
>> and then we can just access our app as if it were running in JBoss or
>> Geronimo. Its not used in production (yet - but we have considered it)
>> but it works very well. (I wrote it up here:
>> http://openejb.apache.org/functional-testing-with-openejb-jetty-and-se
>> lenium.htmlif
>> you're interested).
>>
>> Let us know if have any problems with this setup.
>>
>>
>>
>>
>>>
>>> 2. How many EJBs do you have for it to take this long? If you have a
>>> huge classpath you can try trimming down the search to only the
>>> desired JARs. See:
>>> http://openejb.apache.org/3.0/application-discovery-via-the-classpath
>>> .html
>>> .
>>> Alternatively you can try and specify static bean configurations in
>>> ejb-jar.xml. They would be something like this:
>>>
>>> <?xml version="1.0" encoding="UTF-8" ?> <ejb-jar
>>> xmlns="http://java.sun.com/xml/ns/javaee"; version="3.0"
>>>         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>>>         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
>>>         http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd";>
>>>   <enterprise-beans>
>>>      <session>
>>>         <ejb-name>TestBean</ejb-name>
>>>         <local>net.kunye.test.TestLocal</local>
>>>         <remote>net.kunye.test.TestRemote</remote>
>>>      </session>
>>>      <session>
>>>         <ejb-name>PersonnelBean</ejb-name>
>>>         <local>net.kunye.platform.personnel.PersonnelLocal</local>
>>>         <remote>net.kunye.platform.personnel.PersonnelRemote</remote>
>>>      </session>
>>>   </enterprise-beans>
>>> </ejb-jar>
>>>
>>> When you do this all the beans that are listed will be loaded from
>>> XML (no annotation interpretation afaik) and the rest of the beans
>>> will be loaded the normal way.
>>>
>>> What you can do is perhaps hook in a compile-time task to generate
>>> this list for you. If you already have such a file with other
>>> configurations, you can perhaps make a template and generate the
>>> ejb-jar.xml everytime you compile.
>>>
>>> I'm not sure how much this will help. I've never really had to deal
>>> with this problem. The most EJBs I've loaded was around 50 I think,
>>> and it went quick. Some of the other guys might be able to help with
>>> this.
>>>
>>> Q
>>>
>>
>> I agree with what others have said here - it might be spending a long
>> time searching the classpath for EJBs - changing
>> openejb.deployments.classpath.include/exclude settings might help. If
>> you can let us know how many EJBs you have, how many Jars are on your
>> classpath, and maybe a log as well we might be able to help tune this a bit.
>>
>> Jon
>>
>> MASTEK LTD.
>> Mastek is in NASSCOM's 'India Top 20' Software Service Exporters List.
>> In the US, we're called MAJESCOMASTEK
>>
>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> Opinions expressed in this e-mail are those of the individual and not that 
>> of Mastek Limited, unless specifically indicated to that effect. Mastek 
>> Limited does not accept any responsibility or liability for it. This e-mail 
>> and attachments (if any) transmitted with it are confidential and/or 
>> privileged and solely for the use of the intended person or entity to which 
>> it is addressed. Any review, re-transmission, dissemination or other use of 
>> or taking of any action in reliance upon this information by persons or 
>> entities other than the intended recipient is prohibited. This e-mail and 
>> its attachments have been scanned for the presence of computer viruses. It 
>> is the responsibility of the recipient to run the virus check on e-mails and 
>> attachments before opening them. If you have received this e-mail in error, 
>> kindly delete this e-mail from desktop and server.
>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>
>>
>
>
>
> --
> Quintin Beukes
>
> MASTEK LTD.
> Mastek is in NASSCOM's 'India Top 20' Software Service Exporters List.
> In the US, we're called MAJESCOMASTEK
>
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> Opinions expressed in this e-mail are those of the individual and not that of 
> Mastek Limited, unless specifically indicated to that effect. Mastek Limited 
> does not accept any responsibility or liability for it. This e-mail and 
> attachments (if any) transmitted with it are confidential and/or privileged 
> and solely for the use of the intended person or entity to which it is 
> addressed. Any review, re-transmission, dissemination or other use of or 
> taking of any action in reliance upon this information by persons or entities 
> other than the intended recipient is prohibited. This e-mail and its 
> attachments have been scanned for the presence of computer viruses. It is the 
> responsibility of the recipient to run the virus check on e-mails and 
> attachments before opening them. If you have received this e-mail in error, 
> kindly delete this e-mail from desktop and server.
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
>



--
Quintin Beukes

MASTEK LTD.
Mastek is in NASSCOM's 'India Top 20' Software Service Exporters List.
In the US, we're called MAJESCOMASTEK

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Opinions expressed in this e-mail are those of the individual and not that of 
Mastek Limited, unless specifically indicated to that effect. Mastek Limited 
does not accept any responsibility or liability for it. This e-mail and 
attachments (if any) transmitted with it are confidential and/or privileged and 
solely for the use of the intended person or entity to which it is addressed. 
Any review, re-transmission, dissemination or other use of or taking of any 
action in reliance upon this information by persons or entities other than the 
intended recipient is prohibited. This e-mail and its attachments have been 
scanned for the presence of computer viruses. It is the responsibility of the 
recipient to run the virus check on e-mails and attachments before opening 
them. If you have received this e-mail in error, kindly delete this e-mail from 
desktop and server.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Reply via email to