You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(5) |
Oct
(13) |
Nov
(16) |
Dec
(29) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(38) |
Feb
(51) |
Mar
(51) |
Apr
(115) |
May
(82) |
Jun
(30) |
Jul
(50) |
Aug
(68) |
Sep
(57) |
Oct
(160) |
Nov
(80) |
Dec
(78) |
| 2004 |
Jan
(71) |
Feb
(75) |
Mar
(108) |
Apr
(87) |
May
(79) |
Jun
(70) |
Jul
(69) |
Aug
(39) |
Sep
(52) |
Oct
(47) |
Nov
(50) |
Dec
(32) |
| 2005 |
Jan
(22) |
Feb
(122) |
Mar
(46) |
Apr
(76) |
May
(31) |
Jun
(51) |
Jul
(61) |
Aug
(70) |
Sep
(37) |
Oct
(46) |
Nov
(57) |
Dec
(83) |
| 2006 |
Jan
(55) |
Feb
(81) |
Mar
(51) |
Apr
(67) |
May
(77) |
Jun
(43) |
Jul
(106) |
Aug
(64) |
Sep
(47) |
Oct
(64) |
Nov
(60) |
Dec
(12) |
| 2007 |
Jan
(50) |
Feb
(93) |
Mar
(49) |
Apr
(56) |
May
(40) |
Jun
(63) |
Jul
(40) |
Aug
(47) |
Sep
(54) |
Oct
(37) |
Nov
(54) |
Dec
(37) |
| 2008 |
Jan
(35) |
Feb
(39) |
Mar
(26) |
Apr
(14) |
May
(23) |
Jun
(51) |
Jul
(43) |
Aug
(26) |
Sep
(29) |
Oct
(31) |
Nov
(24) |
Dec
(16) |
| 2009 |
Jan
(21) |
Feb
(30) |
Mar
(74) |
Apr
(26) |
May
(26) |
Jun
(43) |
Jul
(23) |
Aug
(23) |
Sep
(15) |
Oct
(27) |
Nov
(37) |
Dec
(10) |
| 2010 |
Jan
(16) |
Feb
(28) |
Mar
(16) |
Apr
(45) |
May
(8) |
Jun
(68) |
Jul
(45) |
Aug
(44) |
Sep
(51) |
Oct
(7) |
Nov
(20) |
Dec
(21) |
| 2011 |
Jan
(14) |
Feb
(17) |
Mar
(7) |
Apr
(7) |
May
(48) |
Jun
(23) |
Jul
(5) |
Aug
(33) |
Sep
(22) |
Oct
(14) |
Nov
(14) |
Dec
(5) |
| 2012 |
Jan
|
Feb
(10) |
Mar
(12) |
Apr
(51) |
May
(10) |
Jun
(8) |
Jul
(14) |
Aug
(22) |
Sep
(9) |
Oct
(24) |
Nov
(14) |
Dec
(13) |
| 2013 |
Jan
(12) |
Feb
(4) |
Mar
(14) |
Apr
(19) |
May
(2) |
Jun
(5) |
Jul
(13) |
Aug
(10) |
Sep
(4) |
Oct
(11) |
Nov
(13) |
Dec
(2) |
| 2014 |
Jan
(3) |
Feb
(14) |
Mar
(5) |
Apr
(10) |
May
(10) |
Jun
(11) |
Jul
(10) |
Aug
(3) |
Sep
(13) |
Oct
(22) |
Nov
(14) |
Dec
(32) |
| 2015 |
Jan
(8) |
Feb
(2) |
Mar
(17) |
Apr
(1) |
May
(24) |
Jun
|
Jul
(4) |
Aug
|
Sep
(9) |
Oct
(9) |
Nov
(5) |
Dec
(2) |
| 2016 |
Jan
(8) |
Feb
(6) |
Mar
(6) |
Apr
(9) |
May
(3) |
Jun
(2) |
Jul
(7) |
Aug
(6) |
Sep
|
Oct
|
Nov
(1) |
Dec
(6) |
| 2017 |
Jan
(9) |
Feb
(8) |
Mar
(6) |
Apr
|
May
|
Jun
(3) |
Jul
(13) |
Aug
(10) |
Sep
(8) |
Oct
|
Nov
(6) |
Dec
|
| 2018 |
Jan
|
Feb
(5) |
Mar
(7) |
Apr
(2) |
May
|
Jun
|
Jul
(3) |
Aug
(2) |
Sep
(9) |
Oct
(1) |
Nov
(1) |
Dec
(1) |
| 2019 |
Jan
(9) |
Feb
|
Mar
|
Apr
(10) |
May
(3) |
Jun
|
Jul
(7) |
Aug
(1) |
Sep
|
Oct
(2) |
Nov
|
Dec
|
| 2020 |
Jan
(1) |
Feb
(1) |
Mar
(1) |
Apr
|
May
|
Jun
(3) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
| 2021 |
Jan
(1) |
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
(3) |
| 2022 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
| 2023 |
Jan
(3) |
Feb
|
Mar
(1) |
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2024 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
(1) |
Jun
(1) |
Jul
(1) |
Aug
|
Sep
(1) |
Oct
|
Nov
(1) |
Dec
|
| 2025 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
(1) |
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
| 2026 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Andrew D. <and...@hs...> - 2004-09-13 02:30:45
|
Leif Mortenson <leif@...> writes: > What exactly are you having problems with on Shutdown. You can do a > controlled > shutdown with the WrapperSimpleApp class by registering a shutdown > hook. This is > a good option as your application will shutdown cleanly even when not > using the > Wrapper. Leif, thanks for your feedback. I have not tried a shutdown hook yet. I can look into this. > I used the 3rd method when I first created the Wrapper. But once the > other two methods > were created, I have not even once found it necessary to use method #3 > again. I am > interested the exact problems you are encountering that make you feel > you need to use > method #3. When using WrapperSimpleApp, the start method only waits two seconds before reporting that "all is fine" to the Wrapper Manager (assuming service has not failed already). This generally results in the service manager showing that the service has started successfully, yet the service may still stop immediately due to an initialisation error. This could be a problem for an inattentive system administrator, or a startup script. What I prefer to do is have a service wrapper that has a reference to the service application instance, so that health checks can be performed during initialisation. Once the service itself has reported that "all is fine", then start can return. I guess some other options are: 1. Have WrapperSimpleApp receive another parameter through the .conf, to set the start method wait time. However, this would not be as reliable. 2. Have a wrapper.filter.trigger set to catch a fatal exception and SHUTDOWN the Wrapper Manager. I am not sure how this would look to the service manager. I would also need to be more careful with my use of exception types in this case... :-) There is always the chance I am making this more complex than it needs to be, but it does seem like a gap in functionality. If I am missing some other way to do this, please let me know. Also, thanks for providing this very useful tool. |
|
From: Ori A. <oa...@me...> - 2004-09-12 15:40:49
|
I think this is the cause by the way: http://www.winnetmag.com/articles/index.cfm?articleid=39534 Ori -----Original Message----- From: wra...@li... [mailto:wra...@li...] On Behalf Of Leif Mortenson Sent: Sunday, September 12, 2004 4:27 PM To: wra...@li... Subject: Re: [Wrapper-user] Win2k access denied on service start Ori, As it said in that first thread, this is usually a problem with the account settings being incorrect. Are you getting the error when you try to install the service? Or when you try to start it? You are going to need to set the "Logon as Service" right for the user you are trying to run as. This is not possible in Home editions of Windows. Read over the following page: http://wrapper.tanukisoftware.org/doc/english/prop-ntservice-account.html Cheers, Leif Ori Argov wrote: > Hi, > > I'm also seeing the problem described here: (access denied when > starting as NT service) > > https://sourceforge.net/mailarchive/forum.php?thread_id=4186150&forum_id=119 48 > <https://sourceforge.net/mailarchive/forum.php?thread_id=4186150&forum_id=11 948> > > https://sourceforge.net/mailarchive/message.php?msg_id=6261140 > > My versions are as follows: > > Wrapper: 3.0.2 > > OS: Win2k SP4 > > JRE: 1.4.1_05 > > Thanks, > > Ori > > > ______________________________________________________________________ > This email has been scanned by the MessageLabs Email Security System. > For more information please visit http://www.messagelabs.com/email > ______________________________________________________________________ ------------------------------------------------------- This SF.Net email is sponsored by: YOU BE THE JUDGE. Be one of 170 Project Admins to receive an Apple iPod Mini FREE for your judgement on who ports your project to Linux PPC the best. Sponsored by IBM. Deadline: Sept. 13. Go here: http://sf.net/ppc_contest.php _______________________________________________ Wrapper-user mailing list Wra...@li... https://lists.sourceforge.net/lists/listinfo/wrapper-user ______________________________________________________________________ This email has been scanned by the MessageLabs Email Security System. For more information please visit http://www.messagelabs.com/email ______________________________________________________________________ |
|
From: Ori A. <oa...@me...> - 2004-09-12 15:10:42
|
Leif, I'm getting the error only when running the service, not when installing. I guess when I install it my account is Administrator and when I run it it's using the local system account as the link you sent me says. I'll change the user in the conf file as you suggested. Thanks a bunch. Ori -----Original Message----- From: wra...@li... [mailto:wra...@li...] On Behalf Of Leif Mortenson Sent: Sunday, September 12, 2004 4:27 PM To: wra...@li... Subject: Re: [Wrapper-user] Win2k access denied on service start Ori, As it said in that first thread, this is usually a problem with the account settings being incorrect. Are you getting the error when you try to install the service? Or when you try to start it? You are going to need to set the "Logon as Service" right for the user you are trying to run as. This is not possible in Home editions of Windows. Read over the following page: http://wrapper.tanukisoftware.org/doc/english/prop-ntservice-account.html Cheers, Leif Ori Argov wrote: > Hi, > > I'm also seeing the problem described here: (access denied when > starting as NT service) > > https://sourceforge.net/mailarchive/forum.php?thread_id=4186150&forum_id=119 48 > <https://sourceforge.net/mailarchive/forum.php?thread_id=4186150&forum_id=11 948> > > https://sourceforge.net/mailarchive/message.php?msg_id=6261140 > > My versions are as follows: > > Wrapper: 3.0.2 > > OS: Win2k SP4 > > JRE: 1.4.1_05 > > Thanks, > > Ori > > > ______________________________________________________________________ > This email has been scanned by the MessageLabs Email Security System. > For more information please visit http://www.messagelabs.com/email > ______________________________________________________________________ ------------------------------------------------------- This SF.Net email is sponsored by: YOU BE THE JUDGE. Be one of 170 Project Admins to receive an Apple iPod Mini FREE for your judgement on who ports your project to Linux PPC the best. Sponsored by IBM. Deadline: Sept. 13. Go here: http://sf.net/ppc_contest.php _______________________________________________ Wrapper-user mailing list Wra...@li... https://lists.sourceforge.net/lists/listinfo/wrapper-user ______________________________________________________________________ This email has been scanned by the MessageLabs Email Security System. For more information please visit http://www.messagelabs.com/email ______________________________________________________________________ |
|
From: Leif M. <le...@ta...> - 2004-09-12 13:27:36
|
Ori, As it said in that first thread, this is usually a problem with the account settings being incorrect. Are you getting the error when you try to install the service? Or when you try to start it? You are going to need to set the "Logon as Service" right for the user you are trying to run as. This is not possible in Home editions of Windows. Read over the following page: http://wrapper.tanukisoftware.org/doc/english/prop-ntservice-account.html Cheers, Leif Ori Argov wrote: > Hi, > > I'm also seeing the problem described here: (access denied when > starting as NT service) > > https://sourceforge.net/mailarchive/forum.php?thread_id=4186150&forum_id=11948 > <https://sourceforge.net/mailarchive/forum.php?thread_id=4186150&forum_id=11948> > > https://sourceforge.net/mailarchive/message.php?msg_id=6261140 > > My versions are as follows: > > Wrapper: 3.0.2 > > OS: Win2k SP4 > > JRE: 1.4.1_05 > > Thanks, > > Ori > > > ______________________________________________________________________ > This email has been scanned by the MessageLabs Email Security System. > For more information please visit http://www.messagelabs.com/email > ______________________________________________________________________ |
|
From: Ori A. <oa...@me...> - 2004-09-12 09:18:37
|
Hi, I'm also seeing the problem described here: (access denied when starting as NT service) https://sourceforge.net/mailarchive/forum.php?thread_id=4186150 <https://sourceforge.net/mailarchive/forum.php?thread_id=4186150&forum_id=11 948> &forum_id=11948 https://sourceforge.net/mailarchive/message.php?msg_id=6261140 <https://sourceforge.net/mailarchive/message.php?msg_id=6261140> My versions are as follows: Wrapper: 3.0.2 OS: Win2k SP4 JRE: 1.4.1_05 Thanks, Ori ______________________________________________________________________ This email has been scanned by the MessageLabs Email Security System. For more information please visit http://www.messagelabs.com/email ______________________________________________________________________ |
|
From: Leif M. <le...@ta...> - 2004-09-11 13:57:50
|
Daniel, Yes, this is possible, you can completely disable logging in a couple of ways. 1) Clear the logfile name as follows. Due to bug in older versions, you must use 3.1.1 or above to do this. wrapper.logfile= 2) Set the logfile loglevel to a high value. NONE disables it all. wrapper.logfile.loglevel=NONE That said however, if you are using a logging system, I would suggest that you take a different approach. I'm not sure which system you are using, but I suggest that you use your logging system to disable the console output of your logging tool from within the JVM. The benefit of this approach is that you will still be able to record startups, shutdowns, crash logs, etc. in the wrapper.log file. If you ever have you application suddenly crash for some reason, you are going to wish you had a record of some kind. The Wrapper is able to log lots of information that is impossible from within the JVM because it is dumped by the JVM at a very low level. Another approach is to simply guarantee that your wrapper.log files are kept small. By setting the following, you will tell the Wrapper to roll the log file at 1MB. And then keep the most resent rolled file. You won't use up much disk space, but you will have a record of what when wrong if the app crashes or restarts. wrapper.logfile.maxsize=1mb wrapper.logfile.maxfiles=1 Cheers, Leif Daniel Bress wrote: > I have an application that provides all of its own logging. I even > override the standard out and error print streams to also log to my > log files. Therefore the fact that the service wrapper captures all > my console output and logs it to its own file is somewhat redundant. > Is there a way to disable this feature? > > > > Thanks in advance, > > Dan > |
|
From: Daniel B. <db...@te...> - 2004-09-11 04:00:05
|
I have an application that provides all of its own logging. I even override the standard out and error print streams to also log to my log files. Therefore the fact that the service wrapper captures all my console output and logs it to its own file is somewhat redundant. Is there a way to disable this feature? =20 Thanks in advance, Dan |
|
From: Leif M. <le...@ta...> - 2004-09-09 23:41:41
|
Krishna Kottamasu wrote: > Thanks for your prompt response. Upgrading this customer to > 3.1.1/3.1.2 could take some time. I can try setting > wrapper.debug=false in the config. file and see how it goes. From > your message, this is what I understood: Ok, I assumed you had enabled debug output when you started encountering problems. Is there a reason why you have debug output enabled by default? Debug output builds up pretty large log files in a hurry. It looks like you have it limited to 10, 10MB files though so you should be Ok as far as disk-space. > If more than one thread in our application tries to write something to > the standard out (which the wrapper traps and outputs to the wrapper's > log file) at the same time, that could be crashing the wrapper > process. Is my understanding correct? I want to reclarify this. It is only a problem with multithreading in the C code of the Wrapper.exe process. There is NOT a problem when console log output coming from the Java program itself. Logging from multi threaded Java apps is perfectly safe. If the User presss CTRL-C, second thread from the OS is called into the Wrapper process. If my debug log output from this second thread attempts to log at the same instant as a log message from the Wrapper's main event loop then there was a chance of memory corruption. With debug output disabled, this would pretty much never happen. > I've also answered your questions right underneath them in the > original message. Thanks, Leif |
|
From: Krishna K. <kko...@wo...> - 2004-09-09 16:43:05
|
Leif,
Thanks for your prompt response. Upgrading this customer to=20
3.1.1/3.1.2 could take some time. I can try setting wrapper.debug=3Dfals=
e=20
in the config. file and see how it goes. From your message, this is=20
what I understood:
If more than one thread in our application tries to write something to=20
the standard out (which the wrapper traps and outputs to the wrapper's=20
log file) at the same time, that could be crashing the wrapper process. =
Is my understanding correct?
I've also answered your questions right underneath them in the original=20
message.
Thanks,
Krishna
Leif Mortenson wrote:
> Krishna,
> 2.2.9. You are a long time user. I have not seen this particular =
> problem show itself. But
> looking at the log you sent, I might have an idea as to the cause.
>
> First I want to verify that the log you sent is accurate as I am=20
> basing my guess of it. Notice
> that the "DEBUG | " is missing from the beginning of the log entry=20
> that the
> ServiceControlHandler was called.
There are instances in the log where I do see that "DEBUG |"=20
in front of the message and the wrapper still crashes(not at all times=20
however)
>
> Up until version 3.1.0, the Wrapper was pretty much a single=20
> threaded application. In
> 3.1.0, I added a background timer thread and in the process uncovered=20
> a couple
> synchronization bugs in the logging code. In earlier versions these=20
> could be encountered
> if a system signal was thrown (CTRL-C for example) or if the Service=20
> Manager logged
> an event as you are seeing.
>
> I had never seen this lead to a crash in earlier versions, but I=20
> was able to get frequent
> crashes while developing 3.1.0. They were fixed before that release.
>
> The problem is that two threads are attempting to log at the same=20
> instant and are running
> into problems while writing to the same buffer. My guess is that this =
> might be leading to
> a crash in your case. This would be more likely on a multi-CPU system.=
*Yes, it is a multi-cpu machine.*
>
> How often does this happen on this machine? Does it happen without =
> debug
> logging enabled? If so then my guess about a logging issue might not=20
> apply.
*On average it happens about once or twice and with no=20
pattern. I haven't tried it out with disabling debugging.
*
>
> Are you able to locate any instances of the=20
> "ServiceControlHandler(4)" log entry
> in the log files where it does not crash? I am wondering if it=20
> happens every time,
> or at what frequency?
*Yes there are instances when I see that log entry and it=20
doesn't crash. It doesn't happen every time..on average it happens=20
about once or twice and with no pattern.*
>
> Would it be possible for you to try upgrading to 3.1.1 for this=20
> customer? The
> wrapper.conf file should work pretty much as is. The exceptions are=20
> that you will
> need to comment out the wrapper.pidfile and wrapper.port properties.
> The wrapper package names changed to org.tanukisoftware.wrapper =20
> but the
> old naming is still supported.
>
> Note that I am about to get 3.1.2 out the door. This fixes a bug=20
> which will
> cause some JVMs to restart in late October. You can wait for 3.1.2 or =
> work
> around the problem in 3.1.1 by setting the following property.
> wrapper.use_system_time=3Dfalse
>
> I also just went through and added try catch blocks around all of=20
> the entry
> points on the Windows version. If problems like persist in 3.1.2=20
> then it will
> provide much more information as to where exactly the problem arose.
>
> Cheers,
> Leif
>
> Krishna Kottamasu wrote:
>
>> Our company has been using Wrapper to run our java application as a=20
>> Windows service for several customers and it has been working great. =
>> At one of our customer sites however, the windows service for our=20
>> application (that uses wrapper) seems to get terminated randomly. =20
>> The OS is Windows 2000 Terminal. There are no error messages in the=20
>> wrapper's log file or our application's log file. This is what it=20
>> says in the Windows event log:
>>
>> *The service terminated unexpectedly. It has done this 1 time(s). =20
>> The following corrective action will be taken in 0 milliseconds: Run=20
>> the configured recovery program.
>> *
>>
>> The last lines I've always seen in the wrapper's log at the time the=20
>> service goes down are:
>>
>> ServiceControlHandler(4)
>> SERVICE_CONTROL_INTERROGATE
>>
>> It makes me wonder if the service some how is going down when those=20
>> operations are being performed.
>>
>> I'm kind of at a loss here and I'm not sure how to debug this. Our=20
>> application runs just fine indefinitely when started from the command =
>> line with the same JVM arguments.
>>
>> I'm attaching my config. file and the output from the wrapper's log=20
>> file along with this email. Any suggestions or ideas in helping me=20
>> debug this will be greatly appreciated.
>>
>> *Here's the relevant portion from the wrapper's log file. (The=20
>> service in this instance went down at 2004-08-30 08:01:58 AM)*
>>
>> INFO | jvm 1 | 2004/08/30 08:01:58 | Received a packet 103 : ping=
>>
>> INFO | jvm 1 | 2004/08/30 08:01:58 | Send a packet 103 : ok
>>
>> DEBUG | wrapperp | 2004/08/30 08:01:58 | read a packet 103 : ok
>>
>> wrapper | 2004/08/30 08:01:58 | ServiceControlHandler(4)
>>
>> DEBUG | wrapper | 2004/08/30 08:01:58 | SERVICE_CONTROL_INTERROGAT=
E
>>
>> STATUS | wrapper | 2004/08/31 07:30:11 | --> Wrapper Started as Servi=
ce
>>
>> DEBUG | wrapperp | 2004/08/31 07:30:12 | server listening on port 177=
8.
>>
>> STATUS | wrapper | 2004/08/31 07:30:13 | Launching a JVM...
>>
>> DEBUG | wrapper | 2004/08/31 07:30:13 | command:=20
>> "C:\jdk1.3.1_09\bin\java.exe"=20
>> -Dconfiguration_file=3DD:\Workforce\Prod\4.1.1/config_scheduler.xml=20
>> -Dsun.rmi.dgc.server.gcInterval=3D0x7fffffffffffffff=20
>> -Dsun.rmi.dgc.client.gcInterval=3D3600000 -Xms256m -Xmx800M=20
>> -XX:MaxNewSize=3D500m -XX:NewRatio=3D3 -XX:SurvivorRatio=3D3=20
>> -XX:+PrintTenuringDistribution=20
>> -Djava.rmi.server.codebase=3Dfile:/classes -Xms25m -Xmx100m=20
>> -Djava.library.path=3D"D:\Workforce\Prod\4.1.1\workforce\libs\wrapper"=
=20
>> -classpath=20
>> "C:\jdk1.3.1_09\lib\tools.jar;classes;D:\Workforce\Prod\4.1.1;workforc=
e\libs\OracleJDBC\9.0.1\classes12.zip;workforce\libs\sprinta\Sprinta2000.=
jar;workforce\libs\db2jdbc\db2jcc.jar;workforce\libs\pat\patbinfree153.ja=
r;workforce\libs\pat\patbin14_122.jar;workforce\libs\PVApps\pvBeans;workf=
orce\libs\javamail\mail.jar;workforce\libs\jaf\activation.jar;workforce\l=
ibs\log4j\log4j-apache.jar;workforce\libs\log4j\log4j-full.jar;workforce\=
libs\log4j\log4j.jar;workforce\libs\xml4j\xerces.jar;workforce\libs\old_w=
orkforce;workforce\libs\rhino\js.jar;workforce\libs\jakarta-tomcat\lib\ja=
sper.jar;workforce\libs\jakarta-tomcat\lib\servlet.jar;workforce\libs\jak=
arta-tomcat\lib\webserver.jar;workforce\libs\jakarta-struts\lib\jdbc2_0-s=
tdext.jar;workforce\libs\jakarta-struts\lib\struts.jar;workforce\libs\ant=
lr\antlr.jar;workforce\libs\jce\jce1_2-do.jar;workforce\libs\jsse\jsse.ja=
r;workforce\libs\jsse\jnet.jar;workforce\libs\jsse\jcert.jar;workforce\li=
bs\velocity\velocity-dvsl-0.45.jar;workforce\libs\velocity\velocity.jar;w=
orkforce\libs\velocity\lib\logkit-1.0.jar;workforce\libs\velocity\lib\oro=
=2Ejar;workforce\libs\velocity\lib\commons-collections.jar;workforce\libs=
\httpunit\lib\httpunit.jar;workforce\libs\httpunit\lib\Tidy.jar;workforce=
\libs\xalan-j\xalan.jar;workforce\libs\xalan-j\xml-apis.jar;workforce\lib=
s\xalan-j\xercesImpl.jar;workforce\libs\Actuate\ACJDesigner.jar;workforce=
\libs\Actuate\ACJMain.jar;workforce\libs\Actuate\ACJRuntime.jar;workforce=
\libs\Actuate\erdj9xl.jar;workforce\libs\Actuate\PDFExt.jar;workforce\lib=
s\Actuate\ReportDesignerHelp.jar;workforce\libs\xfunction\xFunction.jar;w=
orkforce\libs\wrapper\wrapper.jar;workforce\libs\quartz1.0.3b3\commons-co=
llections.jar;workforce\libs\quartz1.0.3b3\commons-dbcp.jar;workforce\lib=
s\quartz1.0.3b3\commons-logging.jar;workforce\libs\quartz1.0.3b3\commons-=
pool.jar;workforce\libs\quartz1.0.3b3\quartz.jar;workforce\libs\dom4j\dom=
4j-full.jar;workforce\libs\fop\fop.jar"=20
>> -Dwrapper.key=3D"YAh6yPmC9cKwaq2z" -Dwrapper.port=3D1778=20
>> -Dwrapper.debug=3D"TRUE" -Dwrapper.service=3D"TRUE"=20
>> -Dwrapper.cpu.timeout=3D"10" -Dwrapper.jvmid=3D1=20
>> com.silveregg.wrapper.WrapperSimpleApp=20
>> com.workforcesoftware.scheduler.SchedulerService
>>
>> INFO | wrapper | 2004/08/31 07:30:13 | current directory:=20
>> D:\Workforce\Prod\4.1.1\
>>
>> DEBUG | wrapper | 2004/08/31 07:30:13 | Java Virtual Machine=20
>> started (PID=3D588)
>>
>> INFO | jvm 1 | 2004/08/31 07:30:13 | Wrapper Manager: JVM #1
>>
>> INFO | jvm 1 | 2004/08/31 07:30:13 | Wrapper Manager:=20
>> Registering shutdown hook
>>
>> INFO | jvm 1 | 2004/08/31 07:30:13 | Wrapper Manager: Using wrapp=
er
>>
>> INFO | jvm 1 | 2004/08/31 07:30:13 | Calling native=20
>> initialization method.
>>
>> INFO | jvm 1 | 2004/08/31 07:30:13 | Initializing WrapperManager =
>> native library.
>>
>> INFO | jvm 1 | 2004/08/31 07:30:13 | Java Executable:=20
>> C:\jdk1.3.1_09\bin\java.exe
>>
>> INFO | jvm 1 | 2004/08/31 07:30:13 | Java Version :=20
>> 1.3.1_09-b03 Java HotSpot(TM) Client VM
>>
>> INFO | jvm 1 | 2004/08/31 07:30:13 | Java VM Vendor : Sun=20
>> Microsystems Inc.
>>
>> INFO | jvm 1 | 2004/08/31 07:30:13 |
>>
>> INFO | jvm 1 | 2004/08/31 07:30:13 | Wrapper (Version 2.2.9)
>>
>> *Wrapper's config file*
>> # wrapper -i C:\work\rnd\research\wrapper\conf\wrapper_threads.conf
>> #********************************************************************
>> # Wrapper parameters
>> #********************************************************************
>> # Java Application
>> wrapper.java.command=3DC:\jdk1.3.1_09\bin\java.exe
>>
>> wrapper.debug=3Dtrue
>>
>> # Java Main class
>> wrapper.java.mainclass=3Dcom.silveregg.wrapper.WrapperSimpleApp
>>
>> # Java Classpath (include wrapper.jar) Add class path elements as
>> # needed starting from 1
>>
>> wrapper.java.classpath.1=3DC:\jdk1.3.1_09\lib\tools.jar
>> wrapper.java.classpath.2=3Dclasses
>> wrapper.java.classpath.3=3DD:\Workforce\Prod\4.1.1
>> wrapper.java.classpath.4=3Dworkforce\libs\OracleJDBC\9.0.1\classes12.z=
ip
>> wrapper.java.classpath.5=3Dworkforce\libs\sprinta\Sprinta2000.jar
>> wrapper.java.classpath.6=3Dworkforce\libs\db2jdbc\db2jcc.jar
>> wrapper.java.classpath.7=3Dworkforce\libs\pat\patbinfree153.jar
>> wrapper.java.classpath.8=3Dworkforce\libs\pat\patbin14_122.jar
>> wrapper.java.classpath.9=3Dworkforce\libs\PVApps\pvBeans
>> wrapper.java.classpath.10=3Dworkforce\libs\javamail\mail.jar
>> wrapper.java.classpath.11=3Dworkforce\libs\jaf\activation.jar
>> wrapper.java.classpath.12=3Dworkforce\libs\log4j\log4j-apache.jar
>> wrapper.java.classpath.13=3Dworkforce\libs\log4j\log4j-full.jar
>> wrapper.java.classpath.14=3Dworkforce\libs\log4j\log4j.jar
>> wrapper.java.classpath.15=3Dworkforce\libs\xml4j\xerces.jar
>> wrapper.java.classpath.16=3Dworkforce\libs\old_workforce
>> wrapper.java.classpath.17=3Dworkforce\libs\rhino\js.jar
>> wrapper.java.classpath.18=3Dworkforce\libs\jakarta-tomcat\lib\jasper.j=
ar
>> wrapper.java.classpath.19=3Dworkforce\libs\jakarta-tomcat\lib\servlet.=
jar
>> wrapper.java.classpath.20=3Dworkforce\libs\jakarta-tomcat\lib\webserve=
r.jar=20
>>
>> wrapper.java.classpath.21=3Dworkforce\libs\jakarta-struts\lib\jdbc2_0-=
stdext.jar=20
>>
>> wrapper.java.classpath.22=3Dworkforce\libs\jakarta-struts\lib\struts.j=
ar
>> wrapper.java.classpath.23=3Dworkforce\libs\antlr\antlr.jar
>> wrapper.java.classpath.24=3Dworkforce\libs\jce\jce1_2-do.jar
>> wrapper.java.classpath.25=3Dworkforce\libs\jsse\jsse.jar
>> wrapper.java.classpath.26=3Dworkforce\libs\jsse\jnet.jar
>> wrapper.java.classpath.27=3Dworkforce\libs\jsse\jcert.jar
>> wrapper.java.classpath.28=3Dworkforce\libs\velocity\velocity-dvsl-0.45=
=2Ejar
>> wrapper.java.classpath.29=3Dworkforce\libs\velocity\velocity.jar
>> wrapper.java.classpath.30=3Dworkforce\libs\velocity\lib\logkit-1.0.jar=
>> wrapper.java.classpath.31=3Dworkforce\libs\velocity\lib\oro.jar
>> wrapper.java.classpath.32=3Dworkforce\libs\velocity\lib\commons-collec=
tions.jar=20
>>
>> wrapper.java.classpath.33=3Dworkforce\libs\httpunit\lib\httpunit.jar
>> wrapper.java.classpath.34=3Dworkforce\libs\httpunit\lib\Tidy.jar
>> wrapper.java.classpath.35=3Dworkforce\libs\xalan-j\xalan.jar
>> wrapper.java.classpath.36=3Dworkforce\libs\xalan-j\xml-apis.jar
>> wrapper.java.classpath.37=3Dworkforce\libs\xalan-j\xercesImpl.jar
>> wrapper.java.classpath.38=3Dworkforce\libs\Actuate\ACJDesigner.jar
>> wrapper.java.classpath.39=3Dworkforce\libs\Actuate\ACJMain.jar
>> wrapper.java.classpath.40=3Dworkforce\libs\Actuate\ACJRuntime.jar
>> wrapper.java.classpath.41=3Dworkforce\libs\Actuate\erdj9xl.jar
>> wrapper.java.classpath.42=3Dworkforce\libs\Actuate\PDFExt.jar
>> wrapper.java.classpath.43=3Dworkforce\libs\Actuate\ReportDesignerHelp.=
jar
>> wrapper.java.classpath.44=3Dworkforce\libs\xfunction\xFunction.jar
>> wrapper.java.classpath.45=3Dworkforce\libs\wrapper\wrapper.jar
>> wrapper.java.classpath.46=3Dworkforce\libs\quartz1.0.3b3\commons-colle=
ctions.jar=20
>>
>> wrapper.java.classpath.47=3Dworkforce\libs\quartz1.0.3b3\commons-dbcp.=
jar
>> wrapper.java.classpath.48=3Dworkforce\libs\quartz1.0.3b3\commons-loggi=
ng.jar=20
>>
>> wrapper.java.classpath.49=3Dworkforce\libs\quartz1.0.3b3\commons-pool.=
jar
>> wrapper.java.classpath.50=3Dworkforce\libs\quartz1.0.3b3\quartz.jar
>> wrapper.java.classpath.51=3Dworkforce\libs\dom4j\dom4j-full.jar
>> wrapper.java.classpath.52=3Dworkforce\libs\fop\fop.jar
>> #wrapper.java.classpath.1=3DC:\bin\wrapper.jar
>>
>> # Java Library Path (location of Wrapper.DLL or libwrapper.so)
>> wrapper.java.library.path.1=3DD:\Workforce\Prod\4.1.1\workforce\libs\w=
rapper=20
>>
>>
>> # Java Additional Parameters
>> wrapper.java.additional.1=3D-Dconfiguration_file=3DD:\Workforce\Prod\4=
=2E1.1/config_scheduler.xml=20
>>
>>
>> wrapper.java.additional.2=3D-Dsun.rmi.dgc.server.gcInterval=3D0x7fffff=
ffffffffff=20
>>
>> wrapper.java.additional.3=3D-Dsun.rmi.dgc.client.gcInterval=3D3600000
>> wrapper.java.additional.4=3D-Xms256m
>> wrapper.java.additional.5=3D-Xmx800M
>> wrapper.java.additional.6=3D-XX:MaxNewSize=3D500m
>> wrapper.java.additional.7=3D-XX:NewRatio=3D3
>> wrapper.java.additional.8=3D-XX:SurvivorRatio=3D3
>> wrapper.java.additional.9=3D-XX:+PrintTenuringDistribution
>> wrapper.java.additional.10=3D-Djava.rmi.server.codebase=3Dfile:/classe=
s
>>
>> # Initial Java Heap Size (in MB)
>> wrapper.java.initmemory=3D25
>>
>> # Maximum Java Heap Size (in MB)
>> wrapper.java.maxmemory=3D100
>>
>> # Application parameters. Add parameters as needed starting from 1
>> # main class to start:
>> wrapper.app.parameter.1=3Dcom.workforcesoftware.scheduler.SchedulerSer=
vice
>> #wrapper.app.parameter.2=3D2000
>>
>> # Port which the native wrapper code will attempt to connect to
>> wrapper.port=3D1778
>>
>> #********************************************************************
>> # Wrapper Logging parameters
>> #********************************************************************
>> # Format of output for the console. (See docs for formats)
>> wrapper.console.format=3DPM
>>
>> # Log Level for console output. (See docs for log levels)
>> wrapper.console.loglevel=3DERROR
>>
>> # Log file to use for wrapper output logging.
>> wrapper.logfile=3DD:\Workforce\Prod\4.1.1\logs\SchedulerWrapper.log
>>
>> # Format of output for the log file. (See docs for formats)
>> wrapper.logfile.format=3DLPTM
>>
>> # Log Level for log file output. (See docs for log levels)
>> #wrapper.logfile.loglevel=3DDEBUG
>> wrapper.logfile.loglevel=3DERROR
>>
>> # Maximum size that the log file will be allowed to grow to before
>> # the log is rolled. Size is specified in bytes. The default value
>> # of 0, disables log rolling. May abbreviate with the 'k' (kb) or
>> # 'm' (mb) suffix. For example: 10m =3D 10 megabytes.
>> wrapper.logfile.maxsize=3D10m
>>
>> # Maximum number of rolled log files which will be allowed before old
>> # files are deleted. The default value of 0 implies no limit.
>> wrapper.logfile.maxfiles=3D10
>>
>> # Log Level for sys/event log output. (See docs for log levels)
>> wrapper.syslog.loglevel=3DERROR
>>
>> #********************************************************************
>> # Wrapper Unix daemon parameters
>> #********************************************************************
>> # File to write process ID to
>> wrapper.pidfile=3D/var/run/testwrapper.pid
>>
>> #********************************************************************
>> # Wrapper NT Service parameters
>>
>> #********************************************************************
>> # WARNING - Do not modify any of these parameters when an application
>> # using this configuration file has been installed as a service.
>> # Please uninstall the service before modifying this section. The
>> # service can then be reinstalled.
>>
>> # Name of the service
>> wrapper.ntservice.name=3DWorkforce Schd Prod Version 4.1.1
>>
>> # Display name of the service
>> wrapper.ntservice.displayname=3DWorkforce Scheduler Prod Version 4.1.1=
>>
>> # Description of the service
>> wrapper.ntservice.description=3DWorkforce Scheduler Prod Version 4.1.1=
>>
>> # Service dependencies. Add dependencies as needed starting from 1
>> wrapper.ntservice.dependency.1=3D
>> wrapper.ntservice.dependency.2=3D
>>
>> # Mode in which the service is installed. AUTO_START or DEMAND_START
>> wrapper.ntservice.starttype=3DDEMAND_START
>>
>> # Priority at which the service is run. NORMAL, LOW, HIGH, or
>> # REALTIME
>> wrapper.ntservice.process_priority=3DNORMAL
>>
>>
>> Thanks,
>> Krishna
>
>
>
>
>
>
> -------------------------------------------------------
> This SF.Net email is sponsored by: YOU BE THE JUDGE. Be one of 170
> Project Admins to receive an Apple iPod Mini FREE for your judgement on=
> who ports your project to Linux PPC the best. Sponsored by IBM.=20
> Deadline: Sept. 13. Go here: http://sf.net/ppc_contest.php
> _______________________________________________
> Wrapper-user mailing list
> Wra...@li...
> https://lists.sourceforge.net/lists/listinfo/wrapper-user
>
>
|
|
From: Leif M. <le...@ta...> - 2004-09-09 15:42:20
|
Krishna,
2.2.9. You are a long time user. I have not seen this particular=20
problem show itself. But
looking at the log you sent, I might have an idea as to the cause.
First I want to verify that the log you sent is accurate as I am=20
basing my guess of it. Notice
that the "DEBUG | " is missing from the beginning of the log entry=20
that the
ServiceControlHandler was called.
Up until version 3.1.0, the Wrapper was pretty much a single=20
threaded application. In
3.1.0, I added a background timer thread and in the process uncovered a=20
couple
synchronization bugs in the logging code. In earlier versions these=20
could be encountered
if a system signal was thrown (CTRL-C for example) or if the Service=20
Manager logged
an event as you are seeing.
I had never seen this lead to a crash in earlier versions, but I was =
able to get frequent
crashes while developing 3.1.0. They were fixed before that release.
The problem is that two threads are attempting to log at the same=20
instant and are running
into problems while writing to the same buffer. My guess is that this=20
might be leading to
a crash in your case. This would be more likely on a multi-CPU system.
How often does this happen on this machine? Does it happen without=20
debug
logging enabled? If so then my guess about a logging issue might not app=
ly.
Are you able to locate any instances of the=20
"ServiceControlHandler(4)" log entry
in the log files where it does not crash? I am wondering if it happens=20
every time,
or at what frequency?
Would it be possible for you to try upgrading to 3.1.1 for this=20
customer? The
wrapper.conf file should work pretty much as is. The exceptions are=20
that you will
need to comment out the wrapper.pidfile and wrapper.port properties.
The wrapper package names changed to org.tanukisoftware.wrapper but =
the
old naming is still supported.
Note that I am about to get 3.1.2 out the door. This fixes a bug=20
which will
cause some JVMs to restart in late October. You can wait for 3.1.2 or wo=
rk
around the problem in 3.1.1 by setting the following property.
wrapper.use_system_time=3Dfalse
I also just went through and added try catch blocks around all of=20
the entry
points on the Windows version. If problems like persist in 3.1.2 then=20
it will
provide much more information as to where exactly the problem arose.
Cheers,
Leif
Krishna Kottamasu wrote:
> Our company has been using Wrapper to run our java application as a=20
> Windows service for several customers and it has been working great. =20
> At one of our customer sites however, the windows service for our=20
> application (that uses wrapper) seems to get terminated randomly. The =
> OS is Windows 2000 Terminal. There are no error messages in the=20
> wrapper's log file or our application's log file. This is what it=20
> says in the Windows event log:
>
> *The service terminated unexpectedly. It has done this 1 time(s). =20
> The following corrective action will be taken in 0 milliseconds: Run=20
> the configured recovery program.
> *
>
> The last lines I've always seen in the wrapper's log at the time the=20
> service goes down are:
>
> ServiceControlHandler(4)
> SERVICE_CONTROL_INTERROGATE
>
> It makes me wonder if the service some how is going down when those=20
> operations are being performed.
>
> I'm kind of at a loss here and I'm not sure how to debug this. Our=20
> application runs just fine indefinitely when started from the command=20
> line with the same JVM arguments.
>
> I'm attaching my config. file and the output from the wrapper's log=20
> file along with this email. Any suggestions or ideas in helping me=20
> debug this will be greatly appreciated.
>
> *Here's the relevant portion from the wrapper's log file. (The=20
> service in this instance went down at 2004-08-30 08:01:58 AM)*
>
> INFO | jvm 1 | 2004/08/30 08:01:58 | Received a packet 103 : ping
>
> INFO | jvm 1 | 2004/08/30 08:01:58 | Send a packet 103 : ok
>
> DEBUG | wrapperp | 2004/08/30 08:01:58 | read a packet 103 : ok
>
> wrapper | 2004/08/30 08:01:58 | ServiceControlHandler(4)
>
> DEBUG | wrapper | 2004/08/30 08:01:58 | SERVICE_CONTROL_INTERROGATE=
>
> STATUS | wrapper | 2004/08/31 07:30:11 | --> Wrapper Started as Servic=
e
>
> DEBUG | wrapperp | 2004/08/31 07:30:12 | server listening on port 1778=
=2E
>
> STATUS | wrapper | 2004/08/31 07:30:13 | Launching a JVM...
>
> DEBUG | wrapper | 2004/08/31 07:30:13 | command:=20
> "C:\jdk1.3.1_09\bin\java.exe"=20
> -Dconfiguration_file=3DD:\Workforce\Prod\4.1.1/config_scheduler.xml=20
> -Dsun.rmi.dgc.server.gcInterval=3D0x7fffffffffffffff=20
> -Dsun.rmi.dgc.client.gcInterval=3D3600000 -Xms256m -Xmx800M=20
> -XX:MaxNewSize=3D500m -XX:NewRatio=3D3 -XX:SurvivorRatio=3D3=20
> -XX:+PrintTenuringDistribution=20
> -Djava.rmi.server.codebase=3Dfile:/classes -Xms25m -Xmx100m=20
> -Djava.library.path=3D"D:\Workforce\Prod\4.1.1\workforce\libs\wrapper" =
> -classpath=20
> "C:\jdk1.3.1_09\lib\tools.jar;classes;D:\Workforce\Prod\4.1.1;workforce=
\libs\OracleJDBC\9.0.1\classes12.zip;workforce\libs\sprinta\Sprinta2000.j=
ar;workforce\libs\db2jdbc\db2jcc.jar;workforce\libs\pat\patbinfree153.jar=
;workforce\libs\pat\patbin14_122.jar;workforce\libs\PVApps\pvBeans;workfo=
rce\libs\javamail\mail.jar;workforce\libs\jaf\activation.jar;workforce\li=
bs\log4j\log4j-apache.jar;workforce\libs\log4j\log4j-full.jar;workforce\l=
ibs\log4j\log4j.jar;workforce\libs\xml4j\xerces.jar;workforce\libs\old_wo=
rkforce;workforce\libs\rhino\js.jar;workforce\libs\jakarta-tomcat\lib\jas=
per.jar;workforce\libs\jakarta-tomcat\lib\servlet.jar;workforce\libs\jaka=
rta-tomcat\lib\webserver.jar;workforce\libs\jakarta-struts\lib\jdbc2_0-st=
dext.jar;workforce\libs\jakarta-struts\lib\struts.jar;workforce\libs\antl=
r\antlr.jar;workforce\libs\jce\jce1_2-do.jar;workforce\libs\jsse\jsse.jar=
;workforce\libs\jsse\jnet.jar;workforce\libs\jsse\jcert.jar;workforce\lib=
s\velocity\velocity-dvsl-0.45.jar;workforce\libs\velocity\velocity.jar;wo=
rkforce\libs\velocity\lib\logkit-1.0.jar;workforce\libs\velocity\lib\oro.=
jar;workforce\libs\velocity\lib\commons-collections.jar;workforce\libs\ht=
tpunit\lib\httpunit.jar;workforce\libs\httpunit\lib\Tidy.jar;workforce\li=
bs\xalan-j\xalan.jar;workforce\libs\xalan-j\xml-apis.jar;workforce\libs\x=
alan-j\xercesImpl.jar;workforce\libs\Actuate\ACJDesigner.jar;workforce\li=
bs\Actuate\ACJMain.jar;workforce\libs\Actuate\ACJRuntime.jar;workforce\li=
bs\Actuate\erdj9xl.jar;workforce\libs\Actuate\PDFExt.jar;workforce\libs\A=
ctuate\ReportDesignerHelp.jar;workforce\libs\xfunction\xFunction.jar;work=
force\libs\wrapper\wrapper.jar;workforce\libs\quartz1.0.3b3\commons-colle=
ctions.jar;workforce\libs\quartz1.0.3b3\commons-dbcp.jar;workforce\libs\q=
uartz1.0.3b3\commons-logging.jar;workforce\libs\quartz1.0.3b3\commons-poo=
l.jar;workforce\libs\quartz1.0.3b3\quartz.jar;workforce\libs\dom4j\dom4j-=
full.jar;workforce\libs\fop\fop.jar"=20
> -Dwrapper.key=3D"YAh6yPmC9cKwaq2z" -Dwrapper.port=3D1778=20
> -Dwrapper.debug=3D"TRUE" -Dwrapper.service=3D"TRUE"=20
> -Dwrapper.cpu.timeout=3D"10" -Dwrapper.jvmid=3D1=20
> com.silveregg.wrapper.WrapperSimpleApp=20
> com.workforcesoftware.scheduler.SchedulerService
>
> INFO | wrapper | 2004/08/31 07:30:13 | current directory:=20
> D:\Workforce\Prod\4.1.1\
>
> DEBUG | wrapper | 2004/08/31 07:30:13 | Java Virtual Machine started =
> (PID=3D588)
>
> INFO | jvm 1 | 2004/08/31 07:30:13 | Wrapper Manager: JVM #1
>
> INFO | jvm 1 | 2004/08/31 07:30:13 | Wrapper Manager: Registering =
> shutdown hook
>
> INFO | jvm 1 | 2004/08/31 07:30:13 | Wrapper Manager: Using wrappe=
r
>
> INFO | jvm 1 | 2004/08/31 07:30:13 | Calling native=20
> initialization method.
>
> INFO | jvm 1 | 2004/08/31 07:30:13 | Initializing WrapperManager=20
> native library.
>
> INFO | jvm 1 | 2004/08/31 07:30:13 | Java Executable:=20
> C:\jdk1.3.1_09\bin\java.exe
>
> INFO | jvm 1 | 2004/08/31 07:30:13 | Java Version :=20
> 1.3.1_09-b03 Java HotSpot(TM) Client VM
>
> INFO | jvm 1 | 2004/08/31 07:30:13 | Java VM Vendor : Sun=20
> Microsystems Inc.
>
> INFO | jvm 1 | 2004/08/31 07:30:13 |
>
> INFO | jvm 1 | 2004/08/31 07:30:13 | Wrapper (Version 2.2.9)
>
> *Wrapper's config file*
> # wrapper -i C:\work\rnd\research\wrapper\conf\wrapper_threads.conf
> #********************************************************************
> # Wrapper parameters
> #********************************************************************
> # Java Application
> wrapper.java.command=3DC:\jdk1.3.1_09\bin\java.exe
>
> wrapper.debug=3Dtrue
>
> # Java Main class
> wrapper.java.mainclass=3Dcom.silveregg.wrapper.WrapperSimpleApp
>
> # Java Classpath (include wrapper.jar) Add class path elements as
> # needed starting from 1
>
> wrapper.java.classpath.1=3DC:\jdk1.3.1_09\lib\tools.jar
> wrapper.java.classpath.2=3Dclasses
> wrapper.java.classpath.3=3DD:\Workforce\Prod\4.1.1
> wrapper.java.classpath.4=3Dworkforce\libs\OracleJDBC\9.0.1\classes12.zi=
p
> wrapper.java.classpath.5=3Dworkforce\libs\sprinta\Sprinta2000.jar
> wrapper.java.classpath.6=3Dworkforce\libs\db2jdbc\db2jcc.jar
> wrapper.java.classpath.7=3Dworkforce\libs\pat\patbinfree153.jar
> wrapper.java.classpath.8=3Dworkforce\libs\pat\patbin14_122.jar
> wrapper.java.classpath.9=3Dworkforce\libs\PVApps\pvBeans
> wrapper.java.classpath.10=3Dworkforce\libs\javamail\mail.jar
> wrapper.java.classpath.11=3Dworkforce\libs\jaf\activation.jar
> wrapper.java.classpath.12=3Dworkforce\libs\log4j\log4j-apache.jar
> wrapper.java.classpath.13=3Dworkforce\libs\log4j\log4j-full.jar
> wrapper.java.classpath.14=3Dworkforce\libs\log4j\log4j.jar
> wrapper.java.classpath.15=3Dworkforce\libs\xml4j\xerces.jar
> wrapper.java.classpath.16=3Dworkforce\libs\old_workforce
> wrapper.java.classpath.17=3Dworkforce\libs\rhino\js.jar
> wrapper.java.classpath.18=3Dworkforce\libs\jakarta-tomcat\lib\jasper.ja=
r
> wrapper.java.classpath.19=3Dworkforce\libs\jakarta-tomcat\lib\servlet.j=
ar
> wrapper.java.classpath.20=3Dworkforce\libs\jakarta-tomcat\lib\webserver=
=2Ejar
> wrapper.java.classpath.21=3Dworkforce\libs\jakarta-struts\lib\jdbc2_0-s=
tdext.jar=20
>
> wrapper.java.classpath.22=3Dworkforce\libs\jakarta-struts\lib\struts.ja=
r
> wrapper.java.classpath.23=3Dworkforce\libs\antlr\antlr.jar
> wrapper.java.classpath.24=3Dworkforce\libs\jce\jce1_2-do.jar
> wrapper.java.classpath.25=3Dworkforce\libs\jsse\jsse.jar
> wrapper.java.classpath.26=3Dworkforce\libs\jsse\jnet.jar
> wrapper.java.classpath.27=3Dworkforce\libs\jsse\jcert.jar
> wrapper.java.classpath.28=3Dworkforce\libs\velocity\velocity-dvsl-0.45.=
jar
> wrapper.java.classpath.29=3Dworkforce\libs\velocity\velocity.jar
> wrapper.java.classpath.30=3Dworkforce\libs\velocity\lib\logkit-1.0.jar
> wrapper.java.classpath.31=3Dworkforce\libs\velocity\lib\oro.jar
> wrapper.java.classpath.32=3Dworkforce\libs\velocity\lib\commons-collect=
ions.jar=20
>
> wrapper.java.classpath.33=3Dworkforce\libs\httpunit\lib\httpunit.jar
> wrapper.java.classpath.34=3Dworkforce\libs\httpunit\lib\Tidy.jar
> wrapper.java.classpath.35=3Dworkforce\libs\xalan-j\xalan.jar
> wrapper.java.classpath.36=3Dworkforce\libs\xalan-j\xml-apis.jar
> wrapper.java.classpath.37=3Dworkforce\libs\xalan-j\xercesImpl.jar
> wrapper.java.classpath.38=3Dworkforce\libs\Actuate\ACJDesigner.jar
> wrapper.java.classpath.39=3Dworkforce\libs\Actuate\ACJMain.jar
> wrapper.java.classpath.40=3Dworkforce\libs\Actuate\ACJRuntime.jar
> wrapper.java.classpath.41=3Dworkforce\libs\Actuate\erdj9xl.jar
> wrapper.java.classpath.42=3Dworkforce\libs\Actuate\PDFExt.jar
> wrapper.java.classpath.43=3Dworkforce\libs\Actuate\ReportDesignerHelp.j=
ar
> wrapper.java.classpath.44=3Dworkforce\libs\xfunction\xFunction.jar
> wrapper.java.classpath.45=3Dworkforce\libs\wrapper\wrapper.jar
> wrapper.java.classpath.46=3Dworkforce\libs\quartz1.0.3b3\commons-collec=
tions.jar=20
>
> wrapper.java.classpath.47=3Dworkforce\libs\quartz1.0.3b3\commons-dbcp.j=
ar
> wrapper.java.classpath.48=3Dworkforce\libs\quartz1.0.3b3\commons-loggin=
g.jar=20
>
> wrapper.java.classpath.49=3Dworkforce\libs\quartz1.0.3b3\commons-pool.j=
ar
> wrapper.java.classpath.50=3Dworkforce\libs\quartz1.0.3b3\quartz.jar
> wrapper.java.classpath.51=3Dworkforce\libs\dom4j\dom4j-full.jar
> wrapper.java.classpath.52=3Dworkforce\libs\fop\fop.jar
> #wrapper.java.classpath.1=3DC:\bin\wrapper.jar
>
> # Java Library Path (location of Wrapper.DLL or libwrapper.so)
> wrapper.java.library.path.1=3DD:\Workforce\Prod\4.1.1\workforce\libs\wr=
apper=20
>
>
> # Java Additional Parameters
> wrapper.java.additional.1=3D-Dconfiguration_file=3DD:\Workforce\Prod\4.=
1.1/config_scheduler.xml=20
>
>
> wrapper.java.additional.2=3D-Dsun.rmi.dgc.server.gcInterval=3D0x7ffffff=
fffffffff=20
>
> wrapper.java.additional.3=3D-Dsun.rmi.dgc.client.gcInterval=3D3600000
> wrapper.java.additional.4=3D-Xms256m
> wrapper.java.additional.5=3D-Xmx800M
> wrapper.java.additional.6=3D-XX:MaxNewSize=3D500m
> wrapper.java.additional.7=3D-XX:NewRatio=3D3
> wrapper.java.additional.8=3D-XX:SurvivorRatio=3D3
> wrapper.java.additional.9=3D-XX:+PrintTenuringDistribution
> wrapper.java.additional.10=3D-Djava.rmi.server.codebase=3Dfile:/classes=
>
> # Initial Java Heap Size (in MB)
> wrapper.java.initmemory=3D25
>
> # Maximum Java Heap Size (in MB)
> wrapper.java.maxmemory=3D100
>
> # Application parameters. Add parameters as needed starting from 1
> # main class to start:
> wrapper.app.parameter.1=3Dcom.workforcesoftware.scheduler.SchedulerServ=
ice
> #wrapper.app.parameter.2=3D2000
>
> # Port which the native wrapper code will attempt to connect to
> wrapper.port=3D1778
>
> #********************************************************************
> # Wrapper Logging parameters
> #********************************************************************
> # Format of output for the console. (See docs for formats)
> wrapper.console.format=3DPM
>
> # Log Level for console output. (See docs for log levels)
> wrapper.console.loglevel=3DERROR
>
> # Log file to use for wrapper output logging.
> wrapper.logfile=3DD:\Workforce\Prod\4.1.1\logs\SchedulerWrapper.log
>
> # Format of output for the log file. (See docs for formats)
> wrapper.logfile.format=3DLPTM
>
> # Log Level for log file output. (See docs for log levels)
> #wrapper.logfile.loglevel=3DDEBUG
> wrapper.logfile.loglevel=3DERROR
>
> # Maximum size that the log file will be allowed to grow to before
> # the log is rolled. Size is specified in bytes. The default value
> # of 0, disables log rolling. May abbreviate with the 'k' (kb) or
> # 'm' (mb) suffix. For example: 10m =3D 10 megabytes.
> wrapper.logfile.maxsize=3D10m
>
> # Maximum number of rolled log files which will be allowed before old
> # files are deleted. The default value of 0 implies no limit.
> wrapper.logfile.maxfiles=3D10
>
> # Log Level for sys/event log output. (See docs for log levels)
> wrapper.syslog.loglevel=3DERROR
>
> #********************************************************************
> # Wrapper Unix daemon parameters
> #********************************************************************
> # File to write process ID to
> wrapper.pidfile=3D/var/run/testwrapper.pid
>
> #********************************************************************
> # Wrapper NT Service parameters
>
> #********************************************************************
> # WARNING - Do not modify any of these parameters when an application
> # using this configuration file has been installed as a service.
> # Please uninstall the service before modifying this section. The
> # service can then be reinstalled.
>
> # Name of the service
> wrapper.ntservice.name=3DWorkforce Schd Prod Version 4.1.1
>
> # Display name of the service
> wrapper.ntservice.displayname=3DWorkforce Scheduler Prod Version 4.1.1
>
> # Description of the service
> wrapper.ntservice.description=3DWorkforce Scheduler Prod Version 4.1.1
>
> # Service dependencies. Add dependencies as needed starting from 1
> wrapper.ntservice.dependency.1=3D
> wrapper.ntservice.dependency.2=3D
>
> # Mode in which the service is installed. AUTO_START or DEMAND_START
> wrapper.ntservice.starttype=3DDEMAND_START
>
> # Priority at which the service is run. NORMAL, LOW, HIGH, or
> # REALTIME
> wrapper.ntservice.process_priority=3DNORMAL
>
>
> Thanks,
> Krishna
|
|
From: Krishna K. <kko...@wo...> - 2004-09-09 14:04:07
|
Our company has been using Wrapper to run our java application as a=20 Windows service for several customers and it has been working great. At = one of our customer sites however, the windows service for our=20 application (that uses wrapper) seems to get terminated randomly. The=20 OS is Windows 2000 Terminal. There are no error messages in the=20 wrapper's log file or our application's log file. This is what it says=20 in the Windows event log: *The service terminated unexpectedly. It has done this 1 time(s). The=20 following corrective action will be taken in 0 milliseconds: Run the=20 configured recovery program. * The last lines I've always seen in the wrapper's log at the time the=20 service goes down are: ServiceControlHandler(4) SERVICE_CONTROL_INTERROGATE It makes me wonder if the service some how is going down when those=20 operations are being performed. I'm kind of at a loss here and I'm not sure how to debug this. Our=20 application runs just fine indefinitely when started from the command=20 line with the same JVM arguments. I'm attaching my config. file and the output from the wrapper's log file = along with this email. Any suggestions or ideas in helping me debug=20 this will be greatly appreciated. *Here's the relevant portion from the wrapper's log file. (The service=20 in this instance went down at 2004-08-30 08:01:58 AM)* INFO | jvm 1 | 2004/08/30 08:01:58 | Received a packet 103 : ping INFO | jvm 1 | 2004/08/30 08:01:58 | Send a packet 103 : ok DEBUG | wrapperp | 2004/08/30 08:01:58 | read a packet 103 : ok wrapper | 2004/08/30 08:01:58 | ServiceControlHandler(4) DEBUG | wrapper | 2004/08/30 08:01:58 | SERVICE_CONTROL_INTERROGATE STATUS | wrapper | 2004/08/31 07:30:11 | --> Wrapper Started as Service DEBUG | wrapperp | 2004/08/31 07:30:12 | server listening on port 1778. STATUS | wrapper | 2004/08/31 07:30:13 | Launching a JVM... DEBUG | wrapper | 2004/08/31 07:30:13 | command:=20 "C:\jdk1.3.1_09\bin\java.exe"=20 -Dconfiguration_file=3DD:\Workforce\Prod\4.1.1/config_scheduler.xml=20 -Dsun.rmi.dgc.server.gcInterval=3D0x7fffffffffffffff=20 -Dsun.rmi.dgc.client.gcInterval=3D3600000 -Xms256m -Xmx800M=20 -XX:MaxNewSize=3D500m -XX:NewRatio=3D3 -XX:SurvivorRatio=3D3=20 -XX:+PrintTenuringDistribution -Djava.rmi.server.codebase=3Dfile:/classes= =20 -Xms25m -Xmx100m=20 -Djava.library.path=3D"D:\Workforce\Prod\4.1.1\workforce\libs\wrapper"=20 -classpath=20 "C:\jdk1.3.1_09\lib\tools.jar;classes;D:\Workforce\Prod\4.1.1;workforce\l= ibs\OracleJDBC\9.0.1\classes12.zip;workforce\libs\sprinta\Sprinta2000.jar= ;workforce\libs\db2jdbc\db2jcc.jar;workforce\libs\pat\patbinfree153.jar;w= orkforce\libs\pat\patbin14_122.jar;workforce\libs\PVApps\pvBeans;workforc= e\libs\javamail\mail.jar;workforce\libs\jaf\activation.jar;workforce\libs= \log4j\log4j-apache.jar;workforce\libs\log4j\log4j-full.jar;workforce\lib= s\log4j\log4j.jar;workforce\libs\xml4j\xerces.jar;workforce\libs\old_work= force;workforce\libs\rhino\js.jar;workforce\libs\jakarta-tomcat\lib\jaspe= r.jar;workforce\libs\jakarta-tomcat\lib\servlet.jar;workforce\libs\jakart= a-tomcat\lib\webserver.jar;workforce\libs\jakarta-struts\lib\jdbc2_0-stde= xt.jar;workforce\libs\jakarta-struts\lib\struts.jar;workforce\libs\antlr\= antlr.jar;workforce\libs\jce\jce1_2-do.jar;workforce\libs\jsse\jsse.jar;w= orkforce\libs\jsse\jnet.jar;workforce\libs\jsse\jcert.jar;workforce\libs\= velocity\velocity-dvsl-0.45.jar;workforce\libs\velocity\velocity.jar;work= force\libs\velocity\lib\logkit-1.0.jar;workforce\libs\velocity\lib\oro.ja= r;workforce\libs\velocity\lib\commons-collections.jar;workforce\libs\http= unit\lib\httpunit.jar;workforce\libs\httpunit\lib\Tidy.jar;workforce\libs= \xalan-j\xalan.jar;workforce\libs\xalan-j\xml-apis.jar;workforce\libs\xal= an-j\xercesImpl.jar;workforce\libs\Actuate\ACJDesigner.jar;workforce\libs= \Actuate\ACJMain.jar;workforce\libs\Actuate\ACJRuntime.jar;workforce\libs= \Actuate\erdj9xl.jar;workforce\libs\Actuate\PDFExt.jar;workforce\libs\Act= uate\ReportDesignerHelp.jar;workforce\libs\xfunction\xFunction.jar;workfo= rce\libs\wrapper\wrapper.jar;workforce\libs\quartz1.0.3b3\commons-collect= ions.jar;workforce\libs\quartz1.0.3b3\commons-dbcp.jar;workforce\libs\qua= rtz1.0.3b3\commons-logging.jar;workforce\libs\quartz1.0.3b3\commons-pool.= jar;workforce\libs\quartz1.0.3b3\quartz.jar;workforce\libs\dom4j\dom4j-fu= ll.jar;workforce\libs\fop\fop.jar"=20 -Dwrapper.key=3D"YAh6yPmC9cKwaq2z" -Dwrapper.port=3D1778=20 -Dwrapper.debug=3D"TRUE" -Dwrapper.service=3D"TRUE"=20 -Dwrapper.cpu.timeout=3D"10" -Dwrapper.jvmid=3D1=20 com.silveregg.wrapper.WrapperSimpleApp=20 com.workforcesoftware.scheduler.SchedulerService INFO | wrapper | 2004/08/31 07:30:13 | current directory:=20 D:\Workforce\Prod\4.1.1\ DEBUG | wrapper | 2004/08/31 07:30:13 | Java Virtual Machine started=20 (PID=3D588) INFO | jvm 1 | 2004/08/31 07:30:13 | Wrapper Manager: JVM #1 INFO | jvm 1 | 2004/08/31 07:30:13 | Wrapper Manager: Registering=20 shutdown hook INFO | jvm 1 | 2004/08/31 07:30:13 | Wrapper Manager: Using wrapper INFO | jvm 1 | 2004/08/31 07:30:13 | Calling native initialization=20 method. INFO | jvm 1 | 2004/08/31 07:30:13 | Initializing WrapperManager=20 native library. INFO | jvm 1 | 2004/08/31 07:30:13 | Java Executable:=20 C:\jdk1.3.1_09\bin\java.exe INFO | jvm 1 | 2004/08/31 07:30:13 | Java Version : 1.3.1_09-b03=20 Java HotSpot(TM) Client VM INFO | jvm 1 | 2004/08/31 07:30:13 | Java VM Vendor : Sun=20 Microsystems Inc. INFO | jvm 1 | 2004/08/31 07:30:13 | INFO | jvm 1 | 2004/08/31 07:30:13 | Wrapper (Version 2.2.9) *Wrapper's config file* # wrapper -i C:\work\rnd\research\wrapper\conf\wrapper_threads.conf #******************************************************************** # Wrapper parameters #******************************************************************** # Java Application wrapper.java.command=3DC:\jdk1.3.1_09\bin\java.exe wrapper.debug=3Dtrue # Java Main class wrapper.java.mainclass=3Dcom.silveregg.wrapper.WrapperSimpleApp # Java Classpath (include wrapper.jar) Add class path elements as # needed starting from 1 wrapper.java.classpath.1=3DC:\jdk1.3.1_09\lib\tools.jar wrapper.java.classpath.2=3Dclasses wrapper.java.classpath.3=3DD:\Workforce\Prod\4.1.1 wrapper.java.classpath.4=3Dworkforce\libs\OracleJDBC\9.0.1\classes12.zip wrapper.java.classpath.5=3Dworkforce\libs\sprinta\Sprinta2000.jar wrapper.java.classpath.6=3Dworkforce\libs\db2jdbc\db2jcc.jar wrapper.java.classpath.7=3Dworkforce\libs\pat\patbinfree153.jar wrapper.java.classpath.8=3Dworkforce\libs\pat\patbin14_122.jar wrapper.java.classpath.9=3Dworkforce\libs\PVApps\pvBeans wrapper.java.classpath.10=3Dworkforce\libs\javamail\mail.jar wrapper.java.classpath.11=3Dworkforce\libs\jaf\activation.jar wrapper.java.classpath.12=3Dworkforce\libs\log4j\log4j-apache.jar wrapper.java.classpath.13=3Dworkforce\libs\log4j\log4j-full.jar wrapper.java.classpath.14=3Dworkforce\libs\log4j\log4j.jar wrapper.java.classpath.15=3Dworkforce\libs\xml4j\xerces.jar wrapper.java.classpath.16=3Dworkforce\libs\old_workforce wrapper.java.classpath.17=3Dworkforce\libs\rhino\js.jar wrapper.java.classpath.18=3Dworkforce\libs\jakarta-tomcat\lib\jasper.jar wrapper.java.classpath.19=3Dworkforce\libs\jakarta-tomcat\lib\servlet.jar= wrapper.java.classpath.20=3Dworkforce\libs\jakarta-tomcat\lib\webserver.j= ar wrapper.java.classpath.21=3Dworkforce\libs\jakarta-struts\lib\jdbc2_0-std= ext.jar wrapper.java.classpath.22=3Dworkforce\libs\jakarta-struts\lib\struts.jar wrapper.java.classpath.23=3Dworkforce\libs\antlr\antlr.jar wrapper.java.classpath.24=3Dworkforce\libs\jce\jce1_2-do.jar wrapper.java.classpath.25=3Dworkforce\libs\jsse\jsse.jar wrapper.java.classpath.26=3Dworkforce\libs\jsse\jnet.jar wrapper.java.classpath.27=3Dworkforce\libs\jsse\jcert.jar wrapper.java.classpath.28=3Dworkforce\libs\velocity\velocity-dvsl-0.45.ja= r wrapper.java.classpath.29=3Dworkforce\libs\velocity\velocity.jar wrapper.java.classpath.30=3Dworkforce\libs\velocity\lib\logkit-1.0.jar wrapper.java.classpath.31=3Dworkforce\libs\velocity\lib\oro.jar wrapper.java.classpath.32=3Dworkforce\libs\velocity\lib\commons-collectio= ns.jar wrapper.java.classpath.33=3Dworkforce\libs\httpunit\lib\httpunit.jar wrapper.java.classpath.34=3Dworkforce\libs\httpunit\lib\Tidy.jar wrapper.java.classpath.35=3Dworkforce\libs\xalan-j\xalan.jar wrapper.java.classpath.36=3Dworkforce\libs\xalan-j\xml-apis.jar wrapper.java.classpath.37=3Dworkforce\libs\xalan-j\xercesImpl.jar wrapper.java.classpath.38=3Dworkforce\libs\Actuate\ACJDesigner.jar wrapper.java.classpath.39=3Dworkforce\libs\Actuate\ACJMain.jar wrapper.java.classpath.40=3Dworkforce\libs\Actuate\ACJRuntime.jar wrapper.java.classpath.41=3Dworkforce\libs\Actuate\erdj9xl.jar wrapper.java.classpath.42=3Dworkforce\libs\Actuate\PDFExt.jar wrapper.java.classpath.43=3Dworkforce\libs\Actuate\ReportDesignerHelp.jar= wrapper.java.classpath.44=3Dworkforce\libs\xfunction\xFunction.jar wrapper.java.classpath.45=3Dworkforce\libs\wrapper\wrapper.jar wrapper.java.classpath.46=3Dworkforce\libs\quartz1.0.3b3\commons-collecti= ons.jar wrapper.java.classpath.47=3Dworkforce\libs\quartz1.0.3b3\commons-dbcp.jar= wrapper.java.classpath.48=3Dworkforce\libs\quartz1.0.3b3\commons-logging.= jar wrapper.java.classpath.49=3Dworkforce\libs\quartz1.0.3b3\commons-pool.jar= wrapper.java.classpath.50=3Dworkforce\libs\quartz1.0.3b3\quartz.jar wrapper.java.classpath.51=3Dworkforce\libs\dom4j\dom4j-full.jar wrapper.java.classpath.52=3Dworkforce\libs\fop\fop.jar #wrapper.java.classpath.1=3DC:\bin\wrapper.jar # Java Library Path (location of Wrapper.DLL or libwrapper.so) wrapper.java.library.path.1=3DD:\Workforce\Prod\4.1.1\workforce\libs\wrap= per # Java Additional Parameters wrapper.java.additional.1=3D-Dconfiguration_file=3DD:\Workforce\Prod\4.1.= 1/config_scheduler.xml wrapper.java.additional.2=3D-Dsun.rmi.dgc.server.gcInterval=3D0x7ffffffff= fffffff wrapper.java.additional.3=3D-Dsun.rmi.dgc.client.gcInterval=3D3600000 wrapper.java.additional.4=3D-Xms256m wrapper.java.additional.5=3D-Xmx800M wrapper.java.additional.6=3D-XX:MaxNewSize=3D500m wrapper.java.additional.7=3D-XX:NewRatio=3D3 wrapper.java.additional.8=3D-XX:SurvivorRatio=3D3 wrapper.java.additional.9=3D-XX:+PrintTenuringDistribution wrapper.java.additional.10=3D-Djava.rmi.server.codebase=3Dfile:/classes # Initial Java Heap Size (in MB) wrapper.java.initmemory=3D25 # Maximum Java Heap Size (in MB) wrapper.java.maxmemory=3D100 # Application parameters. Add parameters as needed starting from 1 # main class to start: wrapper.app.parameter.1=3Dcom.workforcesoftware.scheduler.SchedulerServic= e #wrapper.app.parameter.2=3D2000 # Port which the native wrapper code will attempt to connect to wrapper.port=3D1778 #******************************************************************** # Wrapper Logging parameters #******************************************************************** # Format of output for the console. (See docs for formats) wrapper.console.format=3DPM # Log Level for console output. (See docs for log levels) wrapper.console.loglevel=3DERROR # Log file to use for wrapper output logging. wrapper.logfile=3DD:\Workforce\Prod\4.1.1\logs\SchedulerWrapper.log # Format of output for the log file. (See docs for formats) wrapper.logfile.format=3DLPTM # Log Level for log file output. (See docs for log levels) #wrapper.logfile.loglevel=3DDEBUG wrapper.logfile.loglevel=3DERROR # Maximum size that the log file will be allowed to grow to before # the log is rolled. Size is specified in bytes. The default value # of 0, disables log rolling. May abbreviate with the 'k' (kb) or # 'm' (mb) suffix. For example: 10m =3D 10 megabytes. wrapper.logfile.maxsize=3D10m # Maximum number of rolled log files which will be allowed before old # files are deleted. The default value of 0 implies no limit. wrapper.logfile.maxfiles=3D10 # Log Level for sys/event log output. (See docs for log levels) wrapper.syslog.loglevel=3DERROR #******************************************************************** # Wrapper Unix daemon parameters #******************************************************************** # File to write process ID to wrapper.pidfile=3D/var/run/testwrapper.pid #******************************************************************** # Wrapper NT Service parameters #******************************************************************** # WARNING - Do not modify any of these parameters when an application # using this configuration file has been installed as a service. # Please uninstall the service before modifying this section. The # service can then be reinstalled. # Name of the service wrapper.ntservice.name=3DWorkforce Schd Prod Version 4.1.1 # Display name of the service wrapper.ntservice.displayname=3DWorkforce Scheduler Prod Version 4.1.1 # Description of the service wrapper.ntservice.description=3DWorkforce Scheduler Prod Version 4.1.1 # Service dependencies. Add dependencies as needed starting from 1 wrapper.ntservice.dependency.1=3D wrapper.ntservice.dependency.2=3D # Mode in which the service is installed. AUTO_START or DEMAND_START wrapper.ntservice.starttype=3DDEMAND_START # Priority at which the service is run. NORMAL, LOW, HIGH, or # REALTIME wrapper.ntservice.process_priority=3DNORMAL Thanks, Krishna |
|
From: Leif M. <le...@ta...> - 2004-09-08 14:48:10
|
Hi all, Two users have recently reported a problem where Wrapper.exe 3.1.1 launched without any arguments will crash or hang right after displaying the usage message. https://sourceforge.net/tracker/?func=detail&atid=425187&aid=1018481&group_id=39428 I have never seen this and have thus not been able to reproduce it. The second of the two users is using XP SP2, which I have not tested with personally. I ended up having to reinstall my OS after doing the "recommended" install of SP1. So if possible I would like to avoid installing SP2 to test this out. If anybody out there has access to a SP2 system, I would appreciate it if you could try running the Wrapper without any parameters and let me know the results either way. From the bug report, it sounds like 3.0.5 does not have the problem, I am not yet sure about 3.1.0. Thanks in advance, Leif |
|
From: Leif M. <le...@ta...> - 2004-09-04 16:38:52
|
Mike, Playing with this a bit more. I set the the bit on the wrapper binary which is owned by my "leif" user. Running it as leif works just fine. If however. I su to root first and then try to run my application, then things fail. On my system. I get the message from the Wrapper that it is has tried to launch the JVM. But the JVM process never comes up and the Wrapper eventually times out. This is different from the problem you are seeing, but it does look like something odd is going on however. Anyone who understands the set user bit, feel free to speak up. Cheers, Leif Leif Mortenson wrote: >Mike, >Sorry for the poor response time. I agree that this is a much more likely >root cause of those other problems than the file being corrupted. I was >grasping for straws at the time.. :-/ > >I tried playing around with setting the user bit on by Debian system and >was not able to reproduce the problem. What are the permissions of the >libjvm.so file on your system? Is it possible that your jboss user just >can't >see it? > >I will forward this to a couple of my Linux users who are a little more >knowledgeable that I on this subject. I will have to study up on how the >user bit affects a process when it is run. > >What is user is the owner of the wrapper executable? "If this bit is set for >an executable file, then whenever a user other than the owner executes >the file, >that user acquires all the file read/write/execute privileges of the >owner in >accessing any of the owner's other files!" >From: >http://heather.cs.ucdavis.edu/~matloff/UnixAndC/CLanguage/SetUserID.html > >Cheers, >Leif > >Mike Cassisa wrote: > > > >>Hi I am setting up a jboss server that is running on RedHat Linux (ES) >>3.0. I have the 1.4.2 jdk from sun installed, via rpm, in >>/usr/java/j2sdk... I have been using the Java Service Wrapper for the >>last couple of years and have been very happy with it. >> >>My problem is this. Initially I had everything set up to run my JBoss >>instance via wrapper script and had it nicely integrated, no problems >>everything works as expected. However, I was running the service as >>root. So I changed the ownership of all files in my jboss directory to >>jboss:jboss (yes I made the user). Then I set the user bit (setuid) on >>the wrapper executeable file (chmod u+s wrapper). When I do this I get >>the following error when trying to run the service/daemon: >> >>"Unable to load native library: libjvm.so: cannot open shared object >>file: No such file or directory >> >>If I chmod 777 the wrapper file it works just fine, even with the >>jboss owner. I did find a previous issue with libjvm.so here >>http://sourceforge.net/mailarchive/message.php?msg_id=6815963 but the >>answer seemed to be that the jvm was corrupted which seems unlikely >>since it all works when the uid bit of the wrapper file is not set. >>The only thing I can think of is that I explicitly list tools.jar in >>my classpath arguments (this has always worked for me) but everything >>else should be pretty standard. Comparing with the log file that works >>there are no differences until the after the "Launching JVM..." output. >> >>I did put the wrapper.debug parameter in the conf file here is the output: >> >>DEBUG | wrapper | 2004/08/06 16:05:18 | Spawning intermediate process... >> >>DEBUG | wrapper | 2004/08/06 16:05:18 | Spawning daemon process... >> >>STATUS | wrapper | 2004/08/06 16:05:18 | --> Wrapper Started as Daemon >> >>DEBUG | wrapperp | 2004/08/06 16:05:18 | server listening on port 32001. >> >>DEBUG | wrapper | 2004/08/06 16:05:18 | Command[0] : >>/usr/java/j2sdk1.4.2_04/bin/java >> >>DEBUG | wrapper | 2004/08/06 16:05:18 | Command[1] : >>-Dprogram.name=echo-run.sh >> >>DEBUG | wrapper | 2004/08/06 16:05:18 | Command[2] : >>-Djboss.home=/usr/local/lib/jboss >> >>DEBUG | wrapper | 2004/08/06 16:05:18 | Command[3] : -Xdebug >> >>DEBUG | wrapper | 2004/08/06 16:05:18 | Command[4] : >>-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=18001 >> >>DEBUG | wrapper | 2004/08/06 16:05:18 | Command[5] : >>-Djava.library.path=../lib >> >>DEBUG | wrapper | 2004/08/06 16:05:18 | Command[6] : -classpath >> >>DEBUG | wrapper | 2004/08/06 16:05:18 | Command[7] : >>../lib/wrapper.jar:../bin/run.jar:/usr/java/j2sdk1.4.2_04/lib/tools.jar >> >>DEBUG | wrapper | 2004/08/06 16:05:18 | Command[8] : >>-Dwrapper.key=9KsZxLvqZXfQjzky >> >>DEBUG | wrapper | 2004/08/06 16:05:18 | Command[9] : -Dwrapper.port=32001 >> >>DEBUG | wrapper | 2004/08/06 16:05:18 | Command[10] : -Dwrapper.debug=TRUE >> >>DEBUG | wrapper | 2004/08/06 16:05:18 | Command[11] : >>-Dwrapper.use_system_time=TRUE >> >>DEBUG | wrapper | 2004/08/06 16:05:18 | Command[12] : >>-Dwrapper.version=3.1.0 >> >>DEBUG | wrapper | 2004/08/06 16:05:18 | Command[13] : >>-Dwrapper.native_library=wrapper >> >>DEBUG | wrapper | 2004/08/06 16:05:18 | Command[14] : >>-Dwrapper.service=TRUE >> >>DEBUG | wrapper | 2004/08/06 16:05:18 | Command[15] : >>-Dwrapper.cpu.timeout=10 >> >>DEBUG | wrapper | 2004/08/06 16:05:18 | Command[16] : -Dwrapper.jvmid=1 >> >>DEBUG | wrapper | 2004/08/06 16:05:18 | Command[17] : >>org.tanukisoftware.wrapper.WrapperSimpleApp >> >>DEBUG | wrapper | 2004/08/06 16:05:18 | Command[18] : org.jboss.Main >> >>DEBUG | wrapper | 2004/08/06 16:05:18 | Command[19] : -c >> >>DEBUG | wrapper | 2004/08/06 16:05:18 | Command[20] : cc >> >>STATUS | wrapper | 2004/08/06 16:05:18 | Launching a JVM... >> >>INFO | jvm 1 | 2004/08/06 16:05:18 | Error occurred during >>initialization of VM >> >>INFO | jvm 1 | 2004/08/06 16:05:18 | Unable to load native library: >>libjvm.so: cannot open shared object file: No such file or directory >> >>DEBUG | wrapper | 2004/08/06 16:05:18 | JVM process exited with a code >>of 1, setting the wrapper exit code to 1. >> >>ERROR | wrapper | 2004/08/06 16:05:18 | JVM exited while loading the >>application. >> >>DEBUG | wrapper | 2004/08/06 16:05:18 | JVM was only running for 0 >>seconds leading to a failed restart count of 1. >> >>Thanks, >> >>MC >> >>Mike Cassisa >> >>Software Engineer >> >>Cricket Communications >> >>10307 Pacific Center Court >> >>San Diego, CA 92121 >> >>858-882-6096 Office >> >>Computer Science is the discipline that believes all >> >>problems can be solved with one more layer of indirection. >> >>-Dennis DeBruler >> >> >> > > > >------------------------------------------------------- >This SF.Net email is sponsored by BEA Weblogic Workshop >FREE Java Enterprise J2EE developer tools! >Get your free copy of BEA WebLogic Workshop 8.1 today. >http://ads.osdn.com/?ad_id=5047&alloc_id=10808&op=click >_______________________________________________ >Wrapper-user mailing list >Wra...@li... >https://lists.sourceforge.net/lists/listinfo/wrapper-user > > > |
|
From: Leif M. <le...@ta...> - 2004-09-04 16:32:39
|
Mike, Sorry for the poor response time. I agree that this is a much more likely root cause of those other problems than the file being corrupted. I was grasping for straws at the time.. :-/ I tried playing around with setting the user bit on by Debian system and was not able to reproduce the problem. What are the permissions of the libjvm.so file on your system? Is it possible that your jboss user just can't see it? I will forward this to a couple of my Linux users who are a little more knowledgeable that I on this subject. I will have to study up on how the user bit affects a process when it is run. What is user is the owner of the wrapper executable? "If this bit is set for an executable file, then whenever a user other than the owner executes the file, that user acquires all the file read/write/execute privileges of the owner in accessing any of the owner's other files!" From: http://heather.cs.ucdavis.edu/~matloff/UnixAndC/CLanguage/SetUserID.html Cheers, Leif Mike Cassisa wrote: > Hi I am setting up a jboss server that is running on RedHat Linux (ES) > 3.0. I have the 1.4.2 jdk from sun installed, via rpm, in > /usr/java/j2sdk... I have been using the Java Service Wrapper for the > last couple of years and have been very happy with it. > > My problem is this. Initially I had everything set up to run my JBoss > instance via wrapper script and had it nicely integrated, no problems > everything works as expected. However, I was running the service as > root. So I changed the ownership of all files in my jboss directory to > jboss:jboss (yes I made the user). Then I set the user bit (setuid) on > the wrapper executeable file (chmod u+s wrapper). When I do this I get > the following error when trying to run the service/daemon: > > "Unable to load native library: libjvm.so: cannot open shared object > file: No such file or directory > > If I chmod 777 the wrapper file it works just fine, even with the > jboss owner. I did find a previous issue with libjvm.so here > http://sourceforge.net/mailarchive/message.php?msg_id=6815963 but the > answer seemed to be that the jvm was corrupted which seems unlikely > since it all works when the uid bit of the wrapper file is not set. > The only thing I can think of is that I explicitly list tools.jar in > my classpath arguments (this has always worked for me) but everything > else should be pretty standard. Comparing with the log file that works > there are no differences until the after the "Launching JVM..." output. > > I did put the wrapper.debug parameter in the conf file here is the output: > > DEBUG | wrapper | 2004/08/06 16:05:18 | Spawning intermediate process... > > DEBUG | wrapper | 2004/08/06 16:05:18 | Spawning daemon process... > > STATUS | wrapper | 2004/08/06 16:05:18 | --> Wrapper Started as Daemon > > DEBUG | wrapperp | 2004/08/06 16:05:18 | server listening on port 32001. > > DEBUG | wrapper | 2004/08/06 16:05:18 | Command[0] : > /usr/java/j2sdk1.4.2_04/bin/java > > DEBUG | wrapper | 2004/08/06 16:05:18 | Command[1] : > -Dprogram.name=echo-run.sh > > DEBUG | wrapper | 2004/08/06 16:05:18 | Command[2] : > -Djboss.home=/usr/local/lib/jboss > > DEBUG | wrapper | 2004/08/06 16:05:18 | Command[3] : -Xdebug > > DEBUG | wrapper | 2004/08/06 16:05:18 | Command[4] : > -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=18001 > > DEBUG | wrapper | 2004/08/06 16:05:18 | Command[5] : > -Djava.library.path=../lib > > DEBUG | wrapper | 2004/08/06 16:05:18 | Command[6] : -classpath > > DEBUG | wrapper | 2004/08/06 16:05:18 | Command[7] : > ../lib/wrapper.jar:../bin/run.jar:/usr/java/j2sdk1.4.2_04/lib/tools.jar > > DEBUG | wrapper | 2004/08/06 16:05:18 | Command[8] : > -Dwrapper.key=9KsZxLvqZXfQjzky > > DEBUG | wrapper | 2004/08/06 16:05:18 | Command[9] : -Dwrapper.port=32001 > > DEBUG | wrapper | 2004/08/06 16:05:18 | Command[10] : -Dwrapper.debug=TRUE > > DEBUG | wrapper | 2004/08/06 16:05:18 | Command[11] : > -Dwrapper.use_system_time=TRUE > > DEBUG | wrapper | 2004/08/06 16:05:18 | Command[12] : > -Dwrapper.version=3.1.0 > > DEBUG | wrapper | 2004/08/06 16:05:18 | Command[13] : > -Dwrapper.native_library=wrapper > > DEBUG | wrapper | 2004/08/06 16:05:18 | Command[14] : > -Dwrapper.service=TRUE > > DEBUG | wrapper | 2004/08/06 16:05:18 | Command[15] : > -Dwrapper.cpu.timeout=10 > > DEBUG | wrapper | 2004/08/06 16:05:18 | Command[16] : -Dwrapper.jvmid=1 > > DEBUG | wrapper | 2004/08/06 16:05:18 | Command[17] : > org.tanukisoftware.wrapper.WrapperSimpleApp > > DEBUG | wrapper | 2004/08/06 16:05:18 | Command[18] : org.jboss.Main > > DEBUG | wrapper | 2004/08/06 16:05:18 | Command[19] : -c > > DEBUG | wrapper | 2004/08/06 16:05:18 | Command[20] : cc > > STATUS | wrapper | 2004/08/06 16:05:18 | Launching a JVM... > > INFO | jvm 1 | 2004/08/06 16:05:18 | Error occurred during > initialization of VM > > INFO | jvm 1 | 2004/08/06 16:05:18 | Unable to load native library: > libjvm.so: cannot open shared object file: No such file or directory > > DEBUG | wrapper | 2004/08/06 16:05:18 | JVM process exited with a code > of 1, setting the wrapper exit code to 1. > > ERROR | wrapper | 2004/08/06 16:05:18 | JVM exited while loading the > application. > > DEBUG | wrapper | 2004/08/06 16:05:18 | JVM was only running for 0 > seconds leading to a failed restart count of 1. > > Thanks, > > MC > > Mike Cassisa > > Software Engineer > > Cricket Communications > > 10307 Pacific Center Court > > San Diego, CA 92121 > > 858-882-6096 Office > > Computer Science is the discipline that believes all > > problems can be solved with one more layer of indirection. > > -Dennis DeBruler > |
|
From: Leif M. <le...@ta...> - 2004-09-04 16:21:23
|
Andrew Dickson wrote: >I never use WrapperSimpleApp because of its lack of a controlled shutdown, and >WrapperStartStopApp does not fit my usual pattern. Therefore, I always find >myself implementing WrapperListener (3rd integration option). The use of this >interface seems restricted to that of a helper class to launch the service, >however I often find myself wanting to implement this directly in the service >class itself. > > What exactly are you having problems with on Shutdown. You can do a controlled shutdown with the WrapperSimpleApp class by registering a shutdown hook. This is a good option as your application will shutdown cleanly even when not using the Wrapper. The WrapperStartStopApp can be used to execute a second class's main method when the Wrapper shuts down. You can easily make use of this by creating a new Shutdown class which has a main method. I used the 3rd method when I first created the Wrapper. But once the other two methods were created, I have not even once found it necessary to use method #3 again. I am interested the exact problems you are encountering that make you feel you need to use method #3. It may be that I need to add additional functionality to the first 2 methods or create a new helper class. If you, Eric, and Venkatesh are finding it necessary to write your own helper classes then it would make more sense for me to include such a class with the Wrapper. Cheers, Leif |
|
From: Leif M. <le...@ta...> - 2004-09-04 16:13:41
|
Christopher, Looking closely at the stack trace below, I noticed that you are using the WrapperSimpleApp rather than the WrapperStartStopApp class. If you correct the main class to be: wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperStartStopApp and then uncomment the properties that you commented out then I bet it will work. With the WrapperSimpleApp helper class, all of those parameters were being passed to the Bootstrap class on startup. My guess is that the class is seeing the final argument and thinking that you are telling it to shutdown. Cheers, Leif Christopher Haskins wrote: > Hi, > > I’m trying to get the wrapper to add Tomcat as a service under NT/XP. > > I have followed the instructions at, > http://wrapper.tanukisoftware.org/doc/english/integrate-start-stop-win.html > > But when I run ‘Tomcat.bat’ in the console I get the following; > > STATUS | wrapper | 2004/08/31 16:02:26 | --> Wrapper Started as Console > > STATUS | wrapper | 2004/08/31 16:02:26 | Launching a JVM... > > INFO | jvm 1 | 2004/08/31 16:02:27 | Wrapper (Version 3.1.1) > http://wrapper.tanukisoftware.org > > INFO | jvm 1 | 2004/08/31 16:02:27 | > > INFO | jvm 1 | 2004/08/31 16:02:28 | Catalina.stop: > java.net.ConnectException: Connection refused: connect > > INFO | jvm 1 | 2004/08/31 16:02:28 | java.net.ConnectException: > Connection refused: connect > > INFO | jvm 1 | 2004/08/31 16:02:28 | at > java.net.PlainSocketImpl.socketConnect(Native Method) > > INFO | jvm 1 | 2004/08/31 16:02:28 | at > java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:305) > > INFO | jvm 1 | 2004/08/31 16:02:28 | at > java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:171) > > INFO | jvm 1 | 2004/08/31 16:02:28 | at > java.net.PlainSocketImpl.connect(PlainSocketImpl.java:158) > > INFO | jvm 1 | 2004/08/31 16:02:28 | at > java.net.Socket.connect(Socket.java:452) > > INFO | jvm 1 | 2004/08/31 16:02:28 | at > java.net.Socket.connect(Socket.java:402) > > INFO | jvm 1 | 2004/08/31 16:02:28 | at > java.net.Socket.<init>(Socket.java:309) > > INFO | jvm 1 | 2004/08/31 16:02:28 | at > java.net.Socket.<init>(Socket.java:124) > > INFO | jvm 1 | 2004/08/31 16:02:28 | at > org.apache.catalina.startup.Catalina.stopServer(Catalina.java:436) > > INFO | jvm 1 | 2004/08/31 16:02:28 | at > sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > INFO | jvm 1 | 2004/08/31 16:02:28 | at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > > INFO | jvm 1 | 2004/08/31 16:02:28 | at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > > INFO | jvm 1 | 2004/08/31 16:02:28 | at > java.lang.reflect.Method.invoke(Method.java:324) > > INFO | jvm 1 | 2004/08/31 16:02:28 | at > org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:322) > > INFO | jvm 1 | 2004/08/31 16:02:28 | at > org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:400) > > INFO | jvm 1 | 2004/08/31 16:02:28 | at > sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > INFO | jvm 1 | 2004/08/31 16:02:28 | at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > > INFO | jvm 1 | 2004/08/31 16:02:28 | at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > > INFO | jvm 1 | 2004/08/31 16:02:28 | at > java.lang.reflect.Method.invoke(Method.java:324) > > INFO | jvm 1 | 2004/08/31 16:02:28 | at > org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:136) > > INFO | jvm 1 | 2004/08/31 16:02:28 | at > java.lang.Thread.run(Thread.java:534) > > STATUS | wrapper | 2004/08/31 16:02:30 | <-- Wrapper Stopped > > Now to me it looks like the wrapper is trying to invoke the ‘stop’ > command before it has started tomcat. So I commented out the > ‘wrapper.app.parameters’ with the stop info in. Example; > > # Application parameters. Add parameters as needed starting from 1 > > #wrapper.app.parameter.1=<YourMainClass> > > # The first application parameter is the name of the class whose main > > # method is to be called when the application is launched. The class > > # name is followed by the number of parameters to be passed to its main > > # method. Then comes the actual parameters. > > wrapper.app.parameter.1=org.apache.catalina.startup.Bootstrap > > wrapper.app.parameter.2=1 > > wrapper.app.parameter.3=start > > # The start parameters are followed by the name of the class whose main > > # method is to be called to stop the application. The stop class name > > # is followed by a flag which controls whether or not the Wrapper should > > # wait for all non daemon threads to complete before exiting the JVM. > > # The flag is followed by the number of parameters to be passed to the > > # stop class's main method. Finally comes the actual parameters. > > #wrapper.app.parameter.4=org.apache.catalina.startup.Bootstrap > > #wrapper.app.parameter.5=true > > #wrapper.app.parameter.6=1 > > #wrapper.app.parameter.7=stop > > Now everything seems to work ok. Started up in the console and also > added it as a service, with tomcat starting and stopping. > > Does anyone see a problem with me removing the 4 lines from my conf > file. Why does it work? Are they not required for Tomcat 5? > > Thanks for any help/advice. > > Chris Haskins > > Java Developer > > Piper Group plc > > Email: cha...@pi... <mailto:cha...@pi...> > > Tel: + 44 (0) 1454 284900 > > Fax: + 44 (0) 1454 284950 > > www.piper-group.com <http://www.piper-group.com/> > > *Information contained in this e-mail is intended for the use of the > addressee only, and is confidential and may be the subject of legal > professional privilege. Any dissemination, distribution, copying or > use of this communication without permission of the addressee is > strictly prohibited. The views expressed* *in this communication may > not necessarily be the views held by Piper Group plc.*** > |
|
From: Leif M. <le...@ta...> - 2004-09-04 16:09:15
|
Luke,
I can't think of anything in the Wrapper that would be stateful in the
Wrapper itself. The error that you are seeing is being caused by the
WrapperManager.start method being called multiple times. Are you sure
that there is no way that your code could be doing this?
WrapperManager.start(itplacemanager.SametimePersistentChatMain@58e6fffc,
args["C:\Program Files\Sametime Persistent
Chat\properties\SametimePersistentChat.properties", "C:\Program
Files\Sametime Persistent Chat\logs\STPersistentChat.log",
"JAVAWRAPPERSERVICE"]) called by thread: main
INFO | jvm 1 | 2004/08/25 22:23:34 | java.lang.IllegalStateException:
WrapperManager has already been started with a WrapperListener.
INFO | jvm 1 | 2004/08/25 22:23:34 | at
org.tanukisoftware.wrapper.WrapperManager.start(WrapperManager.java:1392)
INFO | jvm 1 | 2004/08/25 22:23:34 | at
itplacemanager.SametimePersistentChatMain.main(SametimePersistentChatMain.java:131)
If you want to send me your SametimePersistentChatMain class on or
off list, I can take a look at it and see if anything jumps out at me.
Your wrapper.conf file looks fine.
Cheers,
Leif
l l wrote:
> Leif,
>
> I am using Integration Methods 3.
>
> The purpose of this application is to run as a service that interface
> with Lotus Notes and Sametime Server to provide realtime persistent of
> instant messages and access to instant message.
>
> We have created a main class that implements the WrapperListener
> interface.
>
> When main(String[] args) is called, it reads some properties in and
> create some log files and the most important function is to do a
> WrapperManager.start(new SametimeAuthenticationMain(), args);
>
> I assumed that the WrapperManager.start calls
> public Integer start( String[] args )
> {
> //System.out.println("Entrying SametimePersistentChatMain start");
> logger.writeToDebugFile("Debug", className,"Entrying
> SametimeAuthenticationMain start");
> m_theApp = new ITSametimeAuthenticationApp(m_AppParameters, args,
> logger );
> m_theApp.start();
>
> return null;
> }
>
> The start function create an object that start up several threads that
> serve various purpose.
> Some access the Domino Server, listen for instant messages, write to a
> database.
>
> Everything works fine until I shutdown the service and then restart it.
>
>> From then on, no matter how many time I stop the service and restart,
>> the
>
> exception takes place. Only after rebooting the
> system does the service come up without an exception. If the service
> is stop and restarted, the exception is back.
>
> Here is a copy of my conf file.
>
> #********************************************************************
> # Wrapper Properties
> #********************************************************************
> # Java Application
>
> # Example using system path:
> #wrapper.java.command=java
>
> #Example using JAVA_HOME environment variable:
> #wrapper.java.command=%JAVA_HOME%/bin/java
>
> #Example using full path (not platform independent):
> #wrapper.java.command=c:/j2sdk1.4.0/bin/java
>
> wrapper.java.command=C:\Lotus\Domino\ibm-jre\jre\bin\java.exe
>
> # Java Main class. This class must implement the WrapperListener
> interface
> # or guarantee that the WrapperManager class is initialized. Helper
> # classes are provided to do this for you. See the Integration section
> # of the documentation for details.
>
> wrapper.java.mainclass=itplacemanager.SametimePersistentChatMain
>
> # Java Classpath (include wrapper.jar) Add class path elements as
> # needed starting from 1
> wrapper.java.classpath.1=C:\Lotus\Domino\Notes.jar
> wrapper.java.classpath.2=../lib/wrapper.jar
> wrapper.java.classpath.3=../lib/wrappertest.jar
> wrapper.java.classpath.4=../lib/ITPlaceManager.jar
> wrapper.java.classpath.5=../lib/STComm.jar
>
> # Java Library Path (location of Wrapper.DLL or libwrapper.so)
> wrapper.java.library.path.1=C:\Lotus\Domino
> wrapper.java.library.path.2=../lib
>
> # Java Additional Parameters
> #wrapper.java.additional.1=
>
> # Initial Java Heap Size (in MB)
> #wrapper.java.initmemory=3
>
> # Maximum Java Heap Size (in MB)
> #wrapper.java.maxmemory=64
>
> # Application parameters. Add parameters as needed starting from 1
> wrapper.app.parameter.1="C:\Program Files\Sametime Persistent
> Chat\SametimePersistentChat.properties"
> wrapper.app.parameter.2="C:\Program Files\Sametime Persistent
> Chat\logs\STPersistentChat.log"
> wrapper.app.parameter.3=JAVAWRAPPERSERVICE
>
> #********************************************************************
> # Wrapper Logging Properties
> #********************************************************************
> # Format of output for the console. (See docs for formats)
> wrapper.console.format=PM
>
> # Log Level for console output. (See docs for log levels)
> #wrapper.console.loglevel=INFO
> #wrapper.console.loglevel=DEBUG
>
> # Log file to use for wrapper output logging.
> wrapper.logfile=../logs/wrapper.log
>
> # Format of output for the log file. (See docs for formats)
> wrapper.logfile.format=LPTM
>
> # Log Level for log file output. (See docs for log levels)
> #wrapper.logfile.loglevel=INFO
> wrapper.logfile.loglevel=DEBUG
>
> # Maximum size that the log file will be allowed to grow to before
> # the log is rolled. Size is specified in bytes. The default value
> # of 0, disables log rolling. May abbreviate with the 'k' (kb) or
> # 'm' (mb) suffix. For example: 10m = 10 megabytes.
> wrapper.logfile.maxsize=0
>
> # Maximum number of rolled log files which will be allowed before old
> # files are deleted. The default value of 0 implies no limit.
> wrapper.logfile.maxfiles=0
>
> # Log Level for sys/event log output. (See docs for log levels)
> wrapper.syslog.loglevel=NONE
>
> #********************************************************************
> # Wrapper NT Service Properties
> #********************************************************************
> # WARNING - Do not modify any of these properties when an application
> # using this configuration file has been installed as a service.
> # Please uninstall the service before modifying this section. The
> # service can then be reinstalled.
>
> # Name of the service
> wrapper.ntservice.name=Sametime Persistent Chat
>
> # Display name of the service
> wrapper.ntservice.displayname=Sametime Persistent Chat Application
>
> # Description of the service
> wrapper.ntservice.description=Save place chat information thru Sametime
>
> # Service dependencies. Add dependencies as needed starting from 1
> wrapper.ntservice.dependency.1=
>
> # Mode in which the service is installed. AUTO_START or DEMAND_START
> wrapper.ntservice.starttype=AUTO_START
>
> # Allow the service to interact with the desktop.
> wrapper.ntservice.interactive=false
>
>
> Thank You
> Luke
>
>
>
>
>
>
>
>> Luke,
>
> Which integration method are you using? The problem is that you
> are calling
> WrapperManager.start after the WrapperManager has already been started.
> I will need to see your config file and know a little more about what
> you are doing
> before I can be helpful.
>
> Cheers,
> Leif
>
> lukeysan wrote:
>
> > What could be causing this?
> > Is there any other information I can provide that help?
> >
> > Could it be thread not going away?
> >
> > Thank You
> > Luke
> >
> > Wrapper (Version 3.1.1) http://wrapper.tanukisoftware.org
> > INFO | jvm 1 | 2004/08/25 22:23:34 |
> > INFO | jvm 1 | 2004/08/25 22:23:34 |
> >
> WrapperManager.start(itplacemanager.SametimePersistentChatMain@58e6fffc,
> > args["C:\Program Files\Sametime Persistent
> > Chat\properties\SametimePersistentChat.properties", "C:\Program
> > Files\Sametime Persistent Chat\logs\STPersistentChat.log",
> > "JAVAWRAPPERSERVICE"]) called by thread: main
> > INFO | jvm 1 | 2004/08/25 22:23:34 |
> > java.lang.IllegalStateException: WrapperManager has already been
> > started with a WrapperListener.
> > INFO | jvm 1 | 2004/08/25 22:23:34 | at
> >
> org.tanukisoftware.wrapper.WrapperManager.start(WrapperManager.java:1392)
> > INFO | jvm 1 | 2004/08/25 22:23:34 | at
> >
> itplacemanager.SametimePersistentChatMain.main(SametimePersistentChatMain.java:131)
>
> >
>
> _________________________________________________________________
> Express yourself instantly with MSN Messenger! Download today - it's
> FREE! http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/
>
>
>
> -------------------------------------------------------
> SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
> 100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
> Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
> http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
> _______________________________________________
> Wrapper-user mailing list
> Wra...@li...
> https://lists.sourceforge.net/lists/listinfo/wrapper-user
>
|
|
From: Andrew D. <and...@hs...> - 2004-09-03 04:23:35
|
> . Eric, thanks for your informative response. But I am confused; I keep reading your post in one of two ways. > The interface between the platform (e.g.: Windows) and your service only > provides for a few simple actions. Generally these are Start/Stop, > Pause/Resume and Install/Uninstall. If you have a single class that > implements these interfaces (for the platform) and calls a corresponding > class in your service to provide these actions, then you have > effectively created a single service launcher that can, by using a > specialized .conf file, operate for all of your services. 1. To me, this implies that the ServiceInterface implementation is generic, and is seperate from the stand alone application (SAA). > If you implement a single WrapperListener that calls into an implemented > interface in your service, and you provide the details for this > interaction in your .conf file (in my implementation it is a single > parameter to my service class), then the reflection is performed only > once for your service. And it is performed only when the service > initializes itself. .... > Now I can take my service wrapper, implement my ServiceInterface with > the commands necessary to operate my application, and I can take any app > that I have and run it either as a standalone application, or as a > service. 2. When I read the above, it seems each SAA actually implements the ServiceInterface itself. Which of these is correct, if any? For either of these options, it seems that unlike integration option 1 (service instantiates itself using main), a reference to the SAA is required. Because the service arguments are delivered from the .conf as by the commmand line, using reflection for instantiation is difficult. So to easily create an instance of the SAA, it seems best that I always provide a "String[] args" constructor. Am I on the right track? I still feel like I am missing something obvious here, or I have just got this all wrong... |
|
From: Venkatesh S. <Ven...@lc...> - 2004-09-02 13:32:20
|
++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Please read the disclaimer at the bottom of this e-mail. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ We have virtually the same sort of setup as detailed by Eric and it seems t= o work fine. Anyone has any other experience.. ??? -----Original Message----- From: wra...@li... [mailto:wra...@li...]On Behalf Of EXT-Smith, Eric M Sent: 02 September 2004 13:23 To: wra...@li... Subject: [Wrapper-user] RE: Integration methods; something different? Andrew, >> The alternative is to create an interface that all my service classes >> must implement, so that a generic WrapperListener implementor can=20 >> provide a controlled startup and shutdown. This can be implemented >> using the current API, but does not seem as flexible. On the contrary, IMHO this is an extremely flexible way to do what you are asking. Consider this... The interface between the platform (e.g.: Windows) and your service only provides for a few simple actions. Generally these are Start/Stop, Pause/Resume and Install/Uninstall. If you have a single class that implements these interfaces (for the platform) and calls a corresponding class in your service to provide these actions, then you have effectively created a single service launcher that can, by using a specialized .conf file, operate for all of your services. >>=20 >> What I want to avoid is having to create a WrapperListener implementation >> for each service class I create. Not having to use reflection would also be nice... If you implement a single WrapperListener that calls into an implemented interface in your service, and you provide the details for this interaction in your .conf file (in my implementation it is a single parameter to my service class), then the reflection is performed only once for your service. And it is performed only when the service initializes itself. I put together a simple WrapperListener in about 100 lines (including javadocs) that does this for all of our services. This let me build my services as follows: +- - - - - - - - - - - - - - - + | +-----+ +-----------------+ | +------------------+ +----------------+ | JSW |<>| WrapperListener |<->| ServiceInterface |<->| Standalone App | | +-----+ +-----------------+ | +------------------+ +----------------+ +- - - - - - - - - - - - - - - + Now I can take my service wrapper, implement my ServiceInterface with the commands necessary to operate my application, and I can take any app that I have and run it either as a standalone application, or as a service. All of this by implementing one interface, distributing it in its own jar, adding a parameter in my .conf file, and if necessary an installation program (InstallAnywhere/InstallShield/MSI/etc...). This has allowed my team to put together multiple services for license services, file services, logging services, etc... without each developer requiring specific knowledge of service development or configuration. They only need to know ServiceInterface and how their application works. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Eric M. Smith Harpoon Technologies Office : (314) 233-4204 ------------------------------------------------------- This SF.Net email is sponsored by BEA Weblogic Workshop FREE Java Enterprise J2EE developer tools! Get your free copy of BEA WebLogic Workshop 8.1 today. http://ads.osdn.com/?ad_idP47&alloc_id=10808&op=3Dick _______________________________________________ Wrapper-user mailing list Wra...@li... https://lists.sourceforge.net/lists/listinfo/wrapper-user ********************************************************************** This email is intended for the named recipient(s) only. Its contents are confidential and may only be retained by the named recipient(s) and may only be copied or disclosed with the consent of=20 LCH.Clearnet Limited. If you are not an intended recipient please delete this e-mail and notify pos...@lc.... The contents of this email are subject to contract in all cases,=20 and LCH.Clearnet Limited makes no contractual commitment save where confirmed by hard copy. LCH.Clearnet Limited accepts no liability,=20 including liability for negligence, in respect of any statement in=20 this email. LCH.Clearnet Limited, Registered Office: Aldgate House,=20 33 Aldgate High Street, London EC3N 1EA. Recognised as a Clearing=20 House under the Financial Services & Markets Act 2000. Reg in England No.25= 932=20 Telephone: +44 20 7426 7000 Internet: http://www.lchclearnet.c= om ********************************************************************** |
|
From: EXT-Smith, E. M <eri...@bo...> - 2004-09-02 12:23:32
|
Andrew, >> The alternative is to create an interface that all my service classes >> must implement, so that a generic WrapperListener implementor can=20 >> provide a controlled startup and shutdown. This can be implemented >> using the current API, but does not seem as flexible. On the contrary, IMHO this is an extremely flexible way to do what you are asking. Consider this... The interface between the platform (e.g.: Windows) and your service only provides for a few simple actions. Generally these are Start/Stop, Pause/Resume and Install/Uninstall. If you have a single class that implements these interfaces (for the platform) and calls a corresponding class in your service to provide these actions, then you have effectively created a single service launcher that can, by using a specialized .conf file, operate for all of your services. >>=20 >> What I want to avoid is having to create a WrapperListener implementation >> for each service class I create. Not having to use reflection would also be nice... If you implement a single WrapperListener that calls into an implemented interface in your service, and you provide the details for this interaction in your .conf file (in my implementation it is a single parameter to my service class), then the reflection is performed only once for your service. And it is performed only when the service initializes itself. I put together a simple WrapperListener in about 100 lines (including javadocs) that does this for all of our services. This let me build my services as follows: +- - - - - - - - - - - - - - - + | +-----+ +-----------------+ | +------------------+ +----------------+ | JSW |<>| WrapperListener |<->| ServiceInterface |<->| Standalone App | | +-----+ +-----------------+ | +------------------+ +----------------+ +- - - - - - - - - - - - - - - + Now I can take my service wrapper, implement my ServiceInterface with the commands necessary to operate my application, and I can take any app that I have and run it either as a standalone application, or as a service. All of this by implementing one interface, distributing it in its own jar, adding a parameter in my .conf file, and if necessary an installation program (InstallAnywhere/InstallShield/MSI/etc...). This has allowed my team to put together multiple services for license services, file services, logging services, etc... without each developer requiring specific knowledge of service development or configuration. They only need to know ServiceInterface and how their application works. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Eric M. Smith Harpoon Technologies Office : (314) 233-4204 |
|
From: Andrew D. <and...@hs...> - 2004-09-02 00:30:27
|
I never use WrapperSimpleApp because of its lack of a controlled shutdown, and WrapperStartStopApp does not fit my usual pattern. Therefore, I always find myself implementing WrapperListener (3rd integration option). The use of this interface seems restricted to that of a helper class to launch the service, however I often find myself wanting to implement this directly in the service class itself. In the service class main, the class could instantiate itself using arguments directly from the .conf file. It could then pass itself to the WrapperManager without any arguments, as they are no longer required. The WrapperManager could then call start, again without any arguments, to run the service. Of course, this would require an additional method for the WrapperManager, and probably a new interface (modified WrapperListener). This sort of thing could be implemented using existing methods, but you would be passing a lot of arguments around for no reason. The alternative is to create an interface that all my service classes must implement, so that a generic WrapperListener implementor can provide a controlled startup and shutdown. This can be implemented using the current API, but does not seem as flexible. What I want to avoid is having to create a WrapperListener implementation for each service class I create. Not having to use reflection would also be nice... Am I correct in wanting to do this? Am I missing something obvious? Any comments welcome. |
|
From: Leif M. <le...@ta...> - 2004-08-31 17:10:34
|
Two Wrapper users reported a problem in the Wrapper which caused their applications to shutdown with 3.1.0 and restart with 3.1.1 on Aug 21st. This was caused by an overflow in the internal time keeping code and is cyclical. The next occurrence will be on October 10th. The problem is described in detail in the bug report on the following page. https://sourceforge.net/tracker/index.php?func=detail&aid=1014405&group_id=39428&atid=425187 If you are using the new tick based timer with version 3.1.1 then you will not encounter any problems. The tick based timer can be enabled by setting the following property: wrapper.use_system_time=FALSE The tick timer will most likely be set to be the default timer mechanism in the near future after it has undergone slightly more testing. It appears to be stable in 3.1.1, but had several bugs in 3.1.0 and should not be used there. The restart problem has been fixed in CVS and I will get a 3.1.2 spot release out shortly. IMPORTANT. If you are using 3.1.0 or 3.1.1 in a production environment then it is important that you upgrade to 3.1.2 before October 10th or upgrade to 3.1.1 and enable the tick based timer. Failure to do so could result in your application shutting down under 3.1.0 or restarting under 3.1.1. Feel free to reply if you have any questions or concerns. Cheers, Leif |
|
From: Christopher H. <cha...@pi...> - 2004-08-31 16:07:13
|
Hi, =20 I'm trying to get the wrapper to add Tomcat as a service under NT/XP.=20 I have followed the instructions at, http://wrapper.tanukisoftware.org/doc/english/integrate-start-stop-win.h tml But when I run 'Tomcat.bat' in the console I get the following; =20 STATUS | wrapper | 2004/08/31 16:02:26 | --> Wrapper Started as Console STATUS | wrapper | 2004/08/31 16:02:26 | Launching a JVM... INFO | jvm 1 | 2004/08/31 16:02:27 | Wrapper (Version 3.1.1) http://wrapper.tanukisoftware.org INFO | jvm 1 | 2004/08/31 16:02:27 |=20 INFO | jvm 1 | 2004/08/31 16:02:28 | Catalina.stop: java.net.ConnectException: Connection refused: connect INFO | jvm 1 | 2004/08/31 16:02:28 | java.net.ConnectException: Connection refused: connect INFO | jvm 1 | 2004/08/31 16:02:28 | at java.net.PlainSocketImpl.socketConnect(Native Method) INFO | jvm 1 | 2004/08/31 16:02:28 | at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:305) INFO | jvm 1 | 2004/08/31 16:02:28 | at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:171) INFO | jvm 1 | 2004/08/31 16:02:28 | at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:158) INFO | jvm 1 | 2004/08/31 16:02:28 | at java.net.Socket.connect(Socket.java:452) INFO | jvm 1 | 2004/08/31 16:02:28 | at java.net.Socket.connect(Socket.java:402) INFO | jvm 1 | 2004/08/31 16:02:28 | at java.net.Socket.<init>(Socket.java:309) INFO | jvm 1 | 2004/08/31 16:02:28 | at java.net.Socket.<init>(Socket.java:124) INFO | jvm 1 | 2004/08/31 16:02:28 | at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:436) INFO | jvm 1 | 2004/08/31 16:02:28 | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) INFO | jvm 1 | 2004/08/31 16:02:28 | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav a:39) INFO | jvm 1 | 2004/08/31 16:02:28 | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor Impl.java:25) INFO | jvm 1 | 2004/08/31 16:02:28 | at java.lang.reflect.Method.invoke(Method.java:324) INFO | jvm 1 | 2004/08/31 16:02:28 | at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:322) INFO | jvm 1 | 2004/08/31 16:02:28 | at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:400) INFO | jvm 1 | 2004/08/31 16:02:28 | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) INFO | jvm 1 | 2004/08/31 16:02:28 | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav a:39) INFO | jvm 1 | 2004/08/31 16:02:28 | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor Impl.java:25) INFO | jvm 1 | 2004/08/31 16:02:28 | at java.lang.reflect.Method.invoke(Method.java:324) INFO | jvm 1 | 2004/08/31 16:02:28 | at org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:13 6) INFO | jvm 1 | 2004/08/31 16:02:28 | at java.lang.Thread.run(Thread.java:534) STATUS | wrapper | 2004/08/31 16:02:30 | <-- Wrapper Stopped =20 Now to me it looks like the wrapper is trying to invoke the 'stop' command before it has started tomcat. So I commented out the 'wrapper.app.parameters' with the stop info in. Example; =20 # Application parameters. Add parameters as needed starting from 1 #wrapper.app.parameter.1=3D<YourMainClass> # The first application parameter is the name of the class whose main # method is to be called when the application is launched. The class # name is followed by the number of parameters to be passed to its main # method. Then comes the actual parameters. wrapper.app.parameter.1=3Dorg.apache.catalina.startup.Bootstrap wrapper.app.parameter.2=3D1 wrapper.app.parameter.3=3Dstart =20 # The start parameters are followed by the name of the class whose main # method is to be called to stop the application. The stop class name # is followed by a flag which controls whether or not the Wrapper should # wait for all non daemon threads to complete before exiting the JVM. # The flag is followed by the number of parameters to be passed to the # stop class's main method. Finally comes the actual parameters. #wrapper.app.parameter.4=3Dorg.apache.catalina.startup.Bootstrap #wrapper.app.parameter.5=3Dtrue #wrapper.app.parameter.6=3D1 #wrapper.app.parameter.7=3Dstop =20 Now everything seems to work ok. Started up in the console and also added it as a service, with tomcat starting and stopping. =20 Does anyone see a problem with me removing the 4 lines from my conf file. Why does it work? Are they not required for Tomcat 5? =20 Thanks for any help/advice. =20 Chris Haskins Java Developer Piper Group plc Email: cha...@pi... <mailto:cha...@pi...>=20 Tel: + 44 (0) 1454 284900 Fax: + 44 (0) 1454 284950 www.piper-group.com <http://www.piper-group.com/> =20 Information contained in this e-mail is intended for the use of the addressee only, and is confidential and may be the subject of legal professional privilege. Any dissemination, distribution, copying or use of this communication without permission of the addressee is strictly prohibited. The views expressed in this communication may not necessarily be the views held by Piper Group plc. =20 |
|
From: Leif M. <le...@ta...> - 2004-08-27 07:24:11
|
Stefan, Great. I added a mention of this to the docs for the next release as well. Cheers, Leif Pauwels Stefan wrote: >Hi Leif, > >This works fine ! > >Thanks, >Stefan > > >-----Original Message----- >From: wra...@li... >[mailto:wra...@li...] On Behalf Of Leif >Mortenson >Sent: donderdag 26 augustus 2004 14:35 >To: wra...@li... >Subject: Re: [Wrapper-user] System classpath > > >Stefan, >The Wrapper does not directly support the use of the system classpath. Its >use is generally discouraged by most Java users because of all of the >problems that you run into when running multiple applications. There are >times when everything is necessary though. > >Anyway. You should be able to fake the Wrapper into using it by setting your >entire system classpath as a single classpath element. The Wrapper normally >breaks up the classpath into individual jars to make it platform >independent. Because your system classpath will be correct for the current >platform it will work. > >Try the following: >wrapper.classpath.1=%CLASSPATH% > >Let me know how that works. If you have any problems set wrapper.debug=true. >That will let you see the full classpath generated by the Wrapper. > >Cheers, >Leif > > > >Pauwels Stefan wrote: > > > >>Hello, >>I'm running a wrapper service on Solaris. >>My application uses JNDI, and needs JARS that are on the system >>classpath. How can I use the system classpath i.s.o. the >>wrapper.classpath.<n> properties ? Thanks, >>Stefan >> >> |
|
From: Pauwels S. <Ste...@si...> - 2004-08-27 06:50:34
|
Hi Leif, This works fine ! Thanks, Stefan -----Original Message----- From: wra...@li... [mailto:wra...@li...] On Behalf Of Leif Mortenson Sent: donderdag 26 augustus 2004 14:35 To: wra...@li... Subject: Re: [Wrapper-user] System classpath Stefan, The Wrapper does not directly support the use of the system classpath. Its use is generally discouraged by most Java users because of all of the problems that you run into when running multiple applications. There are times when everything is necessary though. Anyway. You should be able to fake the Wrapper into using it by setting your entire system classpath as a single classpath element. The Wrapper normally breaks up the classpath into individual jars to make it platform independent. Because your system classpath will be correct for the current platform it will work. Try the following: wrapper.classpath.1=%CLASSPATH% Let me know how that works. If you have any problems set wrapper.debug=true. That will let you see the full classpath generated by the Wrapper. Cheers, Leif Pauwels Stefan wrote: > Hello, > I'm running a wrapper service on Solaris. > My application uses JNDI, and needs JARS that are on the system > classpath. How can I use the system classpath i.s.o. the > wrapper.classpath.<n> properties ? Thanks, > Stefan ------------------------------------------------------- SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media 100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33 Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift. http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285 _______________________________________________ Wrapper-user mailing list Wra...@li... https://lists.sourceforge.net/lists/listinfo/wrapper-user |