I'm trying to track down the exact cause of an ephemeral node being
deleted. I know it could be either (a) the session where the node was
created has expired, or (b) some session, perhaps the same one that created
the node, explicitly deletes the node. Is there a good way to figure out,
client-side or server-side, the actual cause of a node deletion?

Specifically, I have a log message like the following, and I want to know
"where" it came from:

2012-03-01 17:02:44 [main-SendThread(blah:2181)] [DEBUG]
[org.apache.zookeeper.ClientCnxn         ] - Got WatchedEvent
state:SyncConnected type:NodeDeleted path:/blah/blah/blah for sessionid

Also, is the referenced session id the session id of a watch on the deleted
node, or the session id of the session that deleted the node? I'm guessing
the former.

.. Adam