• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Hey! Where are my thread dumps?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Hey! Where are my thread dumps?


  • Subject: Re: Hey! Where are my thread dumps?
  • From: Chuck Hill <email@hidden>
  • Date: Mon, 10 Aug 2009 15:45:11 -0700


On Aug 6, 2009, at 10:53 PM, Anjo Krank wrote:


Am 07.08.2009 um 07:45 schrieb Chuck Hill:

Yes, I know how to get a thread dump. There are many tools. The question is why the simple, basic kill -QUIT is not working for deployed apps on Leopard.

Works for me (wonder wotaskd, custom launchd script). Dunno if the launch script influences it.

This made me go back and look at this again. It appears there has been a change in where the JVM sends the thread dump. It previously went to std err, it now goes to std out. So... if you look in the right file :-) things still work as they did.


Cheers,
Chuck



Cheers, Anjo

s11:~ root# cat /Library/LaunchDaemons/ch.aximus.wotaskd.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd ">
<plist version="1.0">
<dict>
<key>Disabled</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>ch.aximus.wotaskd</string>
<key>Program</key>
<string>/usr/local/bin/startWOtaskd.rb</string>
<key>ProgramArguments</key>
<array>
<string>wotaskd</string>
<string>wotaskd</string>
<string>-WOPort</string>
<string>1085</string>
</array>
</dict>
</plist>


s11:~ root# cat /usr/local/bin/startWOtaskd.rb
#!/usr/bin/env ruby
# (2008-Dec-08)

$:.push("/usr/local/etc")
require 'siteconfig'

counter = 1
threshold = 6
logfile = "/Work/Logs/Apps/wotaskd.out"
program = File.basename($0)
defaultPath = "/System/Library/WebObjects/JavaApplications/ wotaskd.woa/"
user = "appserver"
$pid = nil


if ARGV.size == 0
	puts "Usage: #{program} path_to_wotaskd [arguments]"
	puts "Example:\n   #{program} wotaskd -WOPort 1085"
	puts "The program will be started under user '#{user}'"
	puts "Default path: #{defaultPath}  (if path_to_wotaskd is relative)"
	puts "Logfile: #{logfile}"
	exit 1
end

wotaskd = ARGV.shift
wotaskd = defaultPath + wotaskd unless wotaskd =~ /^\//
args = ARGV.join(" ")
unless File.exist?(wotaskd)
 puts "ERROR. File not found: #{wotaskd}   (ARGS= #{args} )"
 exit 1
end
command = "sudo -u #{user} #{wotaskd} #{args}"


stdout = nil # set to "stdout" for debug output $SYSLOG = SysLogger.new("startWOtaskd", 5, stdout, "syslog")

trap("TERM") {   # TERM is the default kill signal
	if $pid != nil && $pid > 100
	  $SYSLOG.notice "SIGTERM received. Stopping wotaskd (pid=#{$pid})."
	  Process.kill("SIGTERM", $pid)
	end
	exit 0
}

while (counter <= threshold)
if ($pid = fork) == nil
outfile = File.new(logfile, "a")
outfile.puts "\nNEWRUN (Pid=#{$$} Counter=#{counter}) #{`date`}"
outfile.puts "COMMAND: #{command}"
$stdout.reopen(outfile)
$stderr.reopen(outfile)
exec(command)
else
$SYSLOG.notice "STARTING wotaskd (Pid=#{$pid} Counter=#{counter}). Logfile= #{logfile}"
Process.wait
end
counter = counter + 1
sleep 10
end


$SYSLOG.error "Restart threshold reached. Did restart wotaskd #{threshold} times, giving up."

_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


-- Chuck Hill Senior Consultant / VP Development

Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems.
http://www.global-village.net/products/practical_webobjects







_______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: This email sent to email@hidden
References: 
 >Hey! Where are my thread dumps? (From: Chuck Hill <email@hidden>)
 >Re: Hey! Where are my thread dumps? (From: Lachlan Deck <email@hidden>)
 >Re: Hey! Where are my thread dumps? (From: Chuck Hill <email@hidden>)
 >Re: Hey! Where are my thread dumps? (From: Anjo Krank <email@hidden>)

  • Prev by Date: Re: AJAX w/WO
  • Next by Date: Re: Session... when are they created?
  • Previous by thread: Re: Hey! Where are my thread dumps?
  • Next by thread: Session... when are they created?
  • Index(es):
    • Date
    • Thread