View Full Version : Closed Java Service Wrapper
rroot
01-13-2009, 11:17 AM
Is the wrapper going to be updated?
There are a lot of notable fixes in 3.3.0 and a few in 3.3.1
Dear rroot
Could you tell us what features of this you would like to have from this new versions?
Finally this is a question of money also. I will redirect one developer to theri page to check the potential of the changes compared with the cost of the update.
rroot
01-16-2009, 02:03 AM
Bernhard,
I will have to reread all of the fixes and updates.
To be honest with you, I just casually glanced over the list of updates since the build being used in PowerFolder. I noticed quite a bit and just thought I would ask.
I have never had any dealings with the company, but it seems like they are making an excellent product with the Java Service Wrapper.
I don't know how Java Service Wrapper is purchased but it seems like they would let PowerFolder receive Updates to the product. But I understand about purchasing products such as this for re-sell, which will have the code for the service wrapper included in PowerFolder end product, Could be expensive.
Anyway.
Ohh, Let me ask this, If I purchased a license from the company as an individual user?? Could I use it instead of the one which is shipped with PowerFolder??
I Imagine that would depend all upon how PowerFolder is incorporating the Service Wrapper into the program?
I am just taking a guess that there should be various methods of incorporating it into PowerFolder?
Hard coding it into PowerFolder or as an add on?
When I am looking over the updates, I will check about that, if they tell how on the web site.
It must actually be relatively easy as that service is only available on the PowerFolder Pro version, if I am correct?
Thank you for responding so fast to the thread.
Robert
(OMG) I just checked the license update for the Professional Edition (32, 64-bit). How many years have gone by since the license expired? Must be sometime after 2006-10-17. Because that is when the 322 (windows not start) bug was fixed and it was updated to 323.
rroot
01-16-2009, 10:48 AM
<insert note after I finally finished writing this.
It is a long read & I tried to be constructive from a non coder, average users aspect>
<plus when I clipped and pasted it, I got the error message about to long, 1500 characters max. Ok, 2 pages, let me do a count>
Dear Bernhard,
Well I have been looking over the updates. Whew my eyes are killing me. <bg>
I thought about some of the ones which would be of consideration for my machines, x86 32 bit Windoze.
There are a lot for the various OS's I did not comment on.
I also looked at the ones which would be considered nice to have.
A few of them seem to me, could be manually set by java switches at runtime.
Here are some of my thoughts on some of the updates.
Remember I am not a coder. Just an average home user. So take it easy on me.
All of the below is just IMHO.
<show stupidity on> dang it... lol
Well here goes...
I have separated them into a few categories
= = = = =
These I am not sure if they would be of any issue or not.
A lot of them would impact your in house java head coders.
Some are just Nice to Have:
1. Add wrapper.timer.<n>.interval and wrapper.timer.<n>.action properties which make it possible to schedule Wrapper shutdowns, JVM restarts and thread dumps at arbitrary times.
#1 Nice to have...
2. Add new wrapper.java.initmemory.percent and wrapper.java.maxmemory.percent properties which make it possible to set the initial and maximum memory values relative to the amount of physical memory on the system. Feature Request #1741051.
3. Make the wrapper.ntservice.name, wrapper.ntservice.displayname, and wrapper.ntservice.description properties aliases of new wrapper.name, wrapper.displayname, and wrapper.description properties as they are now used on UNIX platforms as well as Windows.
4. Add -l and -controlcode commands to the Windows version which make it easy to send user defined control codes to the Wrapper running as a service.
5 Add a new '-it' command to the Windows version which makes it possible to install and start a service as a single command.
#5 This would be nice from your aspect. No impact on running the PowerFolder though.
6. Add WRAPPER_BIN_DIR and WRAPPER_WORKING_DIR environment variables which are now available for use within the wrapper.conf file as well as by any child processes.
#6 Another nice one for your coders. No impact on the end functionality of PowerFolder though without it. I would think.
7. Add the ability to execute a a user configured command in response to any event callback.
#7 Now that one would be a nice to have. But for the actual functionality of PowerFolder, it would not be a necessity. Sigh...
8. Add the ability to send emails in response to any event callback.
9. Add event handling callbacks for Wrapper start/stop, JVM start/stop, JVM started/stopped, JVM restart, JVM killed, and JVM unexpected exit events.
10. Add support for Server (Fixed) as well as Development (OEM based) licenses.
11. Rework the Windows build so it now uses nmake and a Makefile rather than vcbuild. This is probably not as clean, but it was needed to get the 64-bit build working.
#11 Another one for your coders.
12. Internally rename the WRAPPER_JSTATE_LAUNCH state to WRAPPER_JSTATE_LAUNCH_DELAY for clarity.
13. Set a new WRAPPER_JAVA_HOME environment variable if the JAVA_HOME is located in the Windows registry.
14. Added a new wrapper.registry.java_home property which makes it possible to specify the location of java within the registry.
15. Removed the 4096Mb upper limit set on the wrapper.java.initmemory and wrapper.java.maxmemory properties. 64bit users need to go way beyond that.
16. Add support for the SIGUSR1 and SIGUSR2 signals so they can now trigger a shutdown, restart or be forwarded to the JVM for custom functionality. See the wrapper.signal.mode.usr1 and wrapper.signal.mode.usr2 properties. Based on a patch by Robey Pointer. Note that the JVM process does not trap SIGUSR1 or SIGUSR2 signals as they are used internally by the JVM as part of the garbage collection process.
17. Add a new wrapper.ping.interval.logged property which makes it possible to reduce the debug output caused by ping transactions between the Wrapper and JVM.
18. The wrapper.java.initmemory.percent and wrapper.java.maxmemory.percent properties were not correctly being calculated relative to a maximum of 2048MB for 32-bit versions of the Wrapper. Bug #2053167.
19. Add a wrapperw.exe binary in Windows implementations which makes it possible to run the Wrapper without a console. A console still flickers for an instant when the Wrapper starts. This is the same issue that has existed when running as an interactive service and is required to make thread dumping possible.
20. Add a new wrapper.ignore_user_logoffs property which allows the Wrapper and JVM to survive logouts when launched as a console application from another service.
#20 Would this have any issues with having multiple users on a singular computer, with one logging in and another switching users and logging in. Then switching back and forth between the two??
<is my ignorance showing>
21. Add a new "condrestart" command to the shell script which will restart the Wrapper only if it is already running. Feature Request #1928045.
22. Fix a problem where the Windows service exit code was not being set correctly when the JVM exited with a non-zero exit code. The problem could be seen by running "sc query {service}" from the command line. Bug #1859061.
#22 Another bug, JSW should give it to customers.
23. Added two new events; jvm_failed_invocation and jvm_max_failed_invocations. Feature Request #1994718.
24. Modify the template wrapper.conf file to help users debug include file problems.
#24 Would be nice to help pass along info to JSW
25. Improve the message displayed when a license key is found but is deemed to be invalid.
26. Add debug output showing the current os name and architecture to aid in debugging problems.
Well on to the next portion
= = = = =
These may impact my system. As of yet I do not know. But actually, I did have the system crash and burn while using the JSW. But it was while trying out various configurations to try and get the +R folder issue resolved.
1. Fix a problem where the wrapper would sometimes fail to send a packet to the JVM because the sending of the packet would block. Thanks to Peter Gorgon for the patch.
2. Fix a synchronization problem in the logging code which could result in data corruption or access violations.
3. Fix a problem where wildcards like "*.*" or "*" in a classpath property were including the "." and ".." files on Windows versions. Bug #1517928.
#3 seems like that should be a freebie to ALL. Not make you pay for it
4. Fix a problem where the WrapperActionServer would deadlock in its stop method if the JVM shutdown was initiated by a call to the shutdown or restart actions.
#4 may have been what froze my system. Don't know. I would have a hard time trying to duplicate it. Can't remember exactly what I was did.
5. Fix a problem where the PATH environment variable was not being set correctly on Windows versions when run as a service if the wrapper.ntservice.account was set and a PATH was set for both the SYSTEM and user accounts. Bug #1702274.
#5 A Bug? That should be given to you. I do have a lot of my java path variables preset within the environment.
6. Log output from the timer thread was not being queued correctly, this could have lead to timing problems if there were any delays writing to disk.
#6 Ohh a biggie would think. I would have thought this would be classified as a bug.??
7. Add tests of the return values of all malloc calls to catch out of memory errors and recover as gracefully as possible. Bug #1649880.
#7 Another Bug.
8. Fix a buffer overflow problem if the Wrapper was launched without explicitly specifying a configuration file.
9. Fix a memory leak when calling WrapperManager.listServices() on Windows. Bug #1665947.
#9 is another biggie Bug.
10. Add validation checks for Windows versions to make sure that all additional parameters, application arguments, the classpath, and library path all contain values which are quoted correctly. Incorrectly quoted values will now result in a warning message that will help resolve the problem.
#10 should be included as a freebie from JSW I would think.
11. Fix a problem on Windows versions where quoted values specified from the command line were not always being requoted correctly when generating the java command line.
12. Increase the maximum number of log entries which can be queued to avoid losing them. These are only used for log entries outside of the primary thread.
13. The Wrapper is now able to detect when the JVM process is stopped and continued. It will still timeout if stopped, but a descriptive warning is now logged.
#13 What is the timeout period now?? I wonder...
14. Fix a problem where any signals received by the JVM and triggering a SIGCHLD signal in the Wrapper were being interpretted as the JVM having stopped. This was not always true. Bug #1643666.
#14 Another BUG fix
15. Set any unset properties to their default values internally. This is necessary so the WrapperManager.getProperties() method returns the correct set of active properties.
#15 I would have thought this was one of the first things done within any Java program?? <remember imho>
16. Modify the way properties are looked up so that any unreplaced environment variable references will be reevaluated in case they were set after the property was originally set. This is possible with some WRAPPER_* environment variables or depending on the placement of set.* properties in the configuration file.
#16 Is this a biggie?? Does this mean that
IF I Stop the service, open PowerFolder, make a folder to sync, make a invite.file, close PowerFolder, Restart Service.
AND I go to remote computer, import invite.file, personalize file, change the sync method, do a finish.
Then the changes will NOT be written back to the computer/service that initially sent me the invite.
When the computer receiving the invite.file, finally Sync's with the Service at the computer which made the invite.file?
am I clear on the above? or is it gibberish to you?
I may not be explaining it the best way I can atm.
<flush my garbage can> maybe that will help me
17. Fix a problem where relative include file references in the configuration file were not working correctly if the wrapper.working.dir was used to change the working directory. The working directory is now always reset to its original value as the configuration file is being loaded.
19. If internal firewalls were preventing the backend socket from being created, it was not being made clear what the cause was. It was also possible that the JVM would deadlock on shutdown. This second problem was recovered from when the Wrapper killed the JVM.
20. Fix a problem on Windows where the Windows Service Manager was not waiting the full configured time of the wrapper.jvm_exit.timeout and wrapper.shutdown.timeout properties. This was leading to the net stop command timing out and the system shutting down without the java application having fully stopped. Bug #1582568.
21. Fix a problem where the Wrapper was attempting to reopen its backend port even when the JVM was down. This was only a problem when the defined port range was limited to a single port with the wrapper.port.min and wrapper.port.max properties. In such a case one or more warning messages were being displayed because the port is locked for a few moments after being closed.
22. Add new wrapper.logdialog.enable, wrapper.logdialog.format, wrapper.logdialog.lines, and wrapper.logdialog.loglevel properties used to configure the display of a Log dialog when the wrapperw.exe binary exits in an error state.
#22 Shouldn't this be included to all as part of a debug to help sent issues back to JSW
23. Fix a problem on Windows versions where a frozen JVM process was not always being killed. This could result in the zombie JVM processes being left around that consumed memory and other resources.
#23 This may be what happened to me at one time?
24. Fix a problem on Windows versions where servers which reported a large number of possible host ids could cause a buffer overflow on startup. This crash was possible when using either Development or Server licenses. Removed duplicate host ids from the list of possible ids.
#24 Seems like this is a biggie and JSW should give it to all?
Well on to another
= = = = =
My thoughts below concerning Dump and Log file updates.
I think I put some dumps and log file stuff above also:
1. Fix a problem where log files were limited to 2GB on Linux systems
2. Add -d and --dump commands to the Windows version which make it possible to send thread dump requests to the Wrapper when running as a service. Works in association with the new wrapper.thread_dump_control_code property. Feature Request #1118110.
3. Add a new #include.debug declaration in the wrapper configuration file which makes it much easier to debug problems with cascading include files.
4. Modify the debug log output when the Wrapper is attempting to load its native library in an attempt to make the expected failures less threatening.
5. Fix a problem where the DUMP command was not working with the wrapper.commandfile property when run as a service on Windows. Bug #1644421.
#5 is a BUG?? Shouldn't that be a freebie to ALL??
6. Fix a problem where the wrapper.ntservice.account and wrapper.ntservice.password properties were being stored in the system registry if the they were specified on the command line when the Wrapper was installed as a service. This was broken in version 3.2.2. Bug #1538725.
#6 Another Bug??
- - -
End.
Well remember, the above is from a layman's, end user aspect.
Below are also some of my thoughts. Please take all with a grain of salt.
rroot
01-16-2009, 10:52 AM
<Cont>
My general thoughts on some of these
A few are nice to have
Some (IMHO) would seem to be needed.
A lot of them (again imho) should have been freebies available from JSW. Especially the admitted Bugs and also the DeBugfeature sets.
Thoughts as to what I would do.
<soapbox on>
If I was associated with your company (PowerFolder), I would seriously think about petitioning the JSW company to include any and all of the DUMP and LOG updates, even if your yearly subscription has expired. If only for the reasoning that any particular issues could be quickly identified with extensive Dump and Log files. This information could then be relayed back from End Users to PowerFolder then back to JSW company.
My Novice End User thought here:
Seems like it would be good practice for JSW to institute easy Dump and Log features to help identify issues within JSW itself.
Most of us end users have a hard time changing batteries in a mouse, much less understanding about how to do things the hard way to get a good dump and log file. Would be easier if JSW would include those capabilities automatically.
Carefully go over all of the build updates, to see if any of them can be part of any sort of feature set; in which you can pass along to your customers, at a reasonable cost.
I do not know any history of your company. Although I have read a few threads in the forum where some ppl were fussing a bit about PowerFolder making the decision to go private with the product. That is just the nature of the beast. People must be re-numerated in some sort of fashion. Giving freely is fun at first, then to go onwards and upwards for a professionally designed product with tons of feature sets, it takes time and money.
Plus someone has to feed the spouse and kids
Just from my limited experience, I would surmise PowerFolder is a young company with a good product, trying to gather enough of a customer base so as not to worry about the costs of these updates you need from other companies such as JSW.
<soapbox off>
<rant off> 00ps, I hope this wasn't construed as a rant.
I get long winded at times.
But I really did wish to give you my positive, constructive criticism on the updates. From a novice end users aspect.
<sleep on> will catch you later.
also ya don't have to reply to any of my thoughts on the individual updates.
I am sure ya are busy enough as it is.
Robert
ps, I also have some more questions I will ask in another thread.
You are forewarned. :-)
My sync at 01:00 did not happen tonight as I thought it would.
I still must not totally have a clear understanding of the flow of events.
Once I get that straight in my head, I am sure it will run smoothly as it is supposed to.
Some of the nomenclature may be throwing me off. Thinking it is supposed to do something else.
Hannibal
01-19-2009, 03:24 AM
Dear rroot,
Thank you for all this information. A link to the release notes of the service wrapper would also have been sufficient - but ok :)
We will consider to upgrade the wrapper to a newer version in further PowerFolder version, but I cannot promise a release date yet.
Best regards,
Christian
Powered by vBulletin® Version 4.1.10 Copyright © 2012 vBulletin Solutions, Inc. All rights reserved.