Have you tried setting:
<ejb-module remote="true" path="keygenerator" />
in your orion-application.xml on machines B,C, and D? The only place the
KeyGenerator bean is really deployed is on A, so machine A's
orion-application.xml will have remote="false". I am assuming you have
already set up your rmi.xml, etc. correctly to support this kind of
operation (as in the links I posted earlier).
The only other thing I can think of right now is maybe try making a parent
application which has the KeyGenerator bean and run children apps on the
other machines. I haven't tried the parent/child app deployment, so you
would have to check the archives to see if this is feasible.
-jason