I have a Java process that sends my erlang gen_server messages via JInterface. The message being sent to me includes the Pid of the mailbox created on the Java side. That Pid is valid in the sense that I can send messages back to that Pid, and those messages are successfully deposited in the Javan-side mailbox.
However doing a monitor(process, Pid) produces an instant nodedown message (noproc).
Is there a way to monitor this Pid?
Java (and C) nodes are different from Erlang nodes. They are hidden and they do not implement everything Erlang nodes do. In particular, they do not implement monitor support.
This is documented with Erlang Distribution Protocol:
OTP implements a monitoring fallback mechanism for performing calls on (pseudo)-gen_servers on such nodes. The comment is enlightening: