Dan, Should I open up a JIRA issue so that we can track this requested functionality?
To get around this issue, these are the steps we may have to take: 1) Create an "admin" resource that performs the initialization tasks in its capabilities. The resource will not be exposed to clients. 2) Create an external admin client that will automatically invoke the admin resource when app starts up. This will run all the initialization tasks before requests are made to the app. This is especially important if the tasks need to be run in a certain sequential order. 3) Customize further to block or return "system maintenance" messages to incoming requests until all initialization tasks are complete. Or, we may have to look into customizing either the Axis2 container or the web application server to force it to invoke the app upon startup, insteading of waiting for the first request to the Muse servlet app to begin initialization. Ideally, we do not want to do any of the above because it will further complicate deployment. Hopefully it can all be contained in the Muse app at some point. -Vinh -----Original Message----- From: Vinh Nguyen (vinguye2) Sent: Friday, November 17, 2006 9:23 AM To: [email protected] Subject: RE: app initialization tasks Thanks Dan, Yep, for the servlet initialization, I assumed that probably would be the case since many webservers usually don't load servlets until the first call to it. I was hoping the Axis2 had something different, but I understand that's outside of Muse's domain. -Vinh -----Original Message----- From: Daniel Jemiolo [mailto:[EMAIL PROTECTED] Sent: Friday, November 17, 2006 7:06 AM To: [email protected] Subject: RE: app initialization tasks > Putting these initialization tasks in a capability is risky because it > can possibly be called by a client if the capability is exposed > somehow. The capability methods won't be exposed unless you add them to the WSDL (with the exact same paramters and return type). Anyone who has authored a WSDL by hand knows that adding that much XML by accident is unlikely. ;) One could make the same argument for wherever you wish to put the initialization code ("what if it were exposed *somehow*?"). > Also, I'm finding that when the application starts up, it doesn't > actually initialize any resources until the first client request is > sent to it... We found that even if the Axis2 servlet is initialized during server startup, it (Axis2) does not create its services (Muse) until the first request for them. We had the same problem with Axis 1.x. Thus, the first request takes longer, just like with JSPs. Dan "Vinh Nguyen \(vinguye2\)" <[EMAIL PROTECTED]> wrote on 11/16/2006 09:50:07 PM: > Hi Dan, > The app initialization tasks may take some time, depending on what > needs to be done. For example, on startup: > > 1) It may check if external systems are alive, and gather some data > about those resources. > 2) It may contact other resources to let them know that this resource > is alive. > 3) It may initialize global objects that must exist before any > resources can access them (i.e. for collecting statistics). > 4) Must initialize one service group so that clients may starting > making requests to it. > > Putting these initialization tasks in a capability is risky because it > can possibly be called by a client if the capability is exposed somehow. > > > Also, I'm finding that when the application starts up, it doesn't > actually initialize any resources until the first client request is > sent to it. If this is the case, then the first request will always > take the longest. I'm not sure if this is a bug because I thought at > least one resource must automatically be initialized on app startup, > way before requests are handled. > -Vinh > > > -----Original Message----- > From: Daniel Jemiolo [mailto:[EMAIL PROTECTED] > Sent: Thursday, November 16, 2006 8:52 AM > To: [email protected] > Subject: Re: app initialization tasks > > I guess it depends on what your initialization tasks are. If you can > be a bit more specific about what you want to do, I can advise on > where to insert the code. > > Dan > > > "Vinh Nguyen \(vinguye2\)" <[EMAIL PROTECTED]> wrote on 11/15/2006 > 09:19:40 PM: > > > Does Muse have a place where initialization tasks can be invoked > > upon app startup? So far, the samples have these tasks done in the > > capability classes, since the capabilities are intialized when the > > resources are initialized. But, I'm not sure if this is the proper > > place to be doing such tasks. > > > > Or, is this the responsibility of the Axis2 container to invoke the > > app's initialization classes, if Axis2 has such a feature? > > -Vinh > > > --------------------------------------------------------------------- > 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] > --------------------------------------------------------------------- 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] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
