Unable to retreive RMI object bound to JNDI
Hi
I am trying to retrieve an rmi object that appears to have been sucessfully
deployed to the weblogic server. Upon startup the nt command console shows
the message below and the class name appears in the Distributed objects/rmi
area in the Weblogic console.
Invoking main-style startup Guid xxxxxx.GuidImpl
However if I try to write a test client using either one of the following
calls I get a NameNotFoundException.
I have tried both the name Guid (which is what is in the startup entry) and
the fully qualified name. They all have the same results.
Sample calls:
Naming.lookup("Guid");
or
getInitialContext();
jndiContext.lookup("Guid");
In my weblogic properties files I have the following entry:
weblogic.system.startupClass.Guid=xxx.GuidImpl
in the main of GuidImpl class I have the following entry:
Naming.bind("xxx.Guid");
any ideas as to what might be wrong?
Thanks
Hi, all:
Currently I evaluate BEA Weblogic 6.1 server. I've read the "Programming
WebLogic JNDI" section of the documentation for Weblogic server 6.1.
However, I couldn't find the answer for my question. What problem I have
now is that
(1): How I can create a object in the Java VM when the Weblogic server
startup? Note:
This class need to read a property files and
store all of properties information into its instance for the
client program to lookup it later.
(2): How can the previous created object to be bound in the Weblogic
JDNI server and the bounded
object can be shown up in the JDNI tree in the Weblogic server's
console?
(3): How do I code my servlet to lookup that object I
just created in the step1? What configuration settings need to be
done before Weblogic server is started?
Because I am stopped by this problem, if anyone can give me the example
code or some explanation of the solution ASAP,
it would be very appreciated....Thanks in advance.......
Merry Christmas
Long
Similar Messages
-
ClassCastException while looking up RMI objects bound to weblogic.JNDI under WLS 6.1
We deploy a servlet (in a single .war archive) establishing a RMI connection to
an external Java object bound into weblogic JNDI (WLS 6.1).
We get a ClassCastException on invoking JNDI lookup:
Servlet failed with Exception>
java.lang.ClassCastException: $Proxy67
at com.thyssenkrupp.tks.tnt.admin.rmi.ClientServlet.init(ClientServlet.java:81)
at weblogic.servlet.internal.ServletStubImpl.createServlet(ServletStubImpl.java:698)
at weblogic.servlet.internal.ServletStubImpl.createInstances(ServletStubImpl.java:641)
at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:586)
at weblogic.servlet.internal.ServletStubImpl.getServlet(ServletStubImpl.java:366)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:240)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:200)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:2390)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:1959)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
Curiously we don't observe these problems when we include all the classes of the
remote application in the classpath of the WebLogic Server. Actually we want to
avoid including external classes in weblogic.classpath for (hot) deployment reasons.
It also seems that problems don't occur when accessing the remote object from
an independent client application.
We expect this to be a classloader conflict within WLS 6.1
Does anybody know a solution to our problems?
Thanks for suggestions
Andreas KoernerThere was a similar bug that was supposedly fixed in WL 6.1 SP 2. I had
filed a bug on this myself, and was given a patch for SP1, you should be
able to ask for the patch for CR060416.
Peter Mularien
Deploy Solutions, Inc.
Andreas Koerner wrote:
>
We deploy a servlet (in a single .war archive) establishing a RMI connection to
an external Java object bound into weblogic JNDI (WLS 6.1).
We get a ClassCastException on invoking JNDI lookup:
Servlet failed with Exception>
java.lang.ClassCastException: $Proxy67
at com.thyssenkrupp.tks.tnt.admin.rmi.ClientServlet.init(ClientServlet.java:81)
at weblogic.servlet.internal.ServletStubImpl.createServlet(ServletStubImpl.java:698)
at weblogic.servlet.internal.ServletStubImpl.createInstances(ServletStubImpl.java:641)
at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:586)
at weblogic.servlet.internal.ServletStubImpl.getServlet(ServletStubImpl.java:366)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:240)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:200)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:2390)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:1959)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
Curiously we don't observe these problems when we include all the classes of the
remote application in the classpath of the WebLogic Server. Actually we want to
avoid including external classes in weblogic.classpath for (hot) deployment reasons.
It also seems that problems don't occur when accessing the remote object from
an independent client application.
We expect this to be a classloader conflict within WLS 6.1
Does anybody know a solution to our problems?
Thanks for suggestions
Andreas Koerner -
Clustered Remote Object Bound To JNDI
Hello,
I'd like to know if Weblogic 5.1 (service pack 10) supports
clusterable remote objects.
What I am trying to do is to implement a remote object that extends
UnicastRemoteObject interface and bind it to JNDI. When the client
needs the services, it will lookup that object in JNDI and call its
methods remotely.
What happens to my test implementation is that it all works well when
I run Weblogic locally, but if it is run on the remote server, it
gives me the exception to the extend that the stub for my remote
object is not found (although it is in the classpath). I understand
that this is because I should be using weblogic.rmic instead of
regular rmic, is that right?
Thanks,
Eugene Kononov.
Hello,
I'd like to know if Weblogic 5.1 (service pack 10) supports
clusterable remote objects.
What I am trying to do is to implement a remote object that extends
UnicastRemoteObject interface and bind it to JNDI. When the client
needs the services, it will lookup that object in JNDI and call its
methods remotely.
What happens to my test implementation is that it all works well when
I run Weblogic locally, but if it is run on the remote server, it
gives me the exception to the extend that the stub for my remote
object is not found (although it is in the classpath). I understand
that this is because I should be using weblogic.rmic instead of
regular rmic, is that right?
Thanks,
Eugene Kononov.
-
Regular RMI server object with WebLogic JNDI
Is that possible to register a regular RMI object with WebLogic JNDI
tree? I was building a simple program (using javac and rmic only) based
on the java.rmi.* (without changing the import statements to
weblogic.rmi.*) and using the weblogic.jndi to register the server
object. Below is some piece of code,
Context ctx = null;
Hashtable ht = new Hashtable();
ht.put(Context.INITIAL_CONTEXT_FACTORY,
"weblogic.jndi.WLInitialContextFactory");
ht.put(Context.PROVIDER_URL, "t3://172.20.20.20:7001");
ctx = new InitialContext(ht);
ctx.bind("HelloServer", obj);
The code failed for the following reason,
javax.naming.NamingException. Root exception is
java.rmi.MarshalException: failed to marshal public abstract void
weblogic.jndi.internal.NamingNode.bind(java.lang.String,java.lang.Object,java.util.Hashtable)
throws javax.naming.NamingException,java.rmi.RemoteException; nested
exception is:
java.rmi.server.ExportException: A description for
examples.rmi.hello.HelloImpl was found but it could not be read due to:
[Failed to find examples.rmi.hello.HelloImpl_WLStub or
examples.rmi.hello.Hello_WLStub for class examples.rmi.hello.HelloImpl]
java.rmi.StubNotFoundException: Failed to find
examples.rmi.hello.HelloImpl_WLStub or examples.rmi.hello.Hello_WLStub
for class examples.rmi.hello.HelloImpl
at
weblogic.rmi.internal.BasicDescriptor.<init>(BasicDescriptor.java:101)
at
weblogic.rmi.internal.BasicRuntimeDescriptor.<init>(BasicRuntimeDescriptor.java:50)
at
weblogic.rmi.internal.DescriptorManager.resolveClass(DescriptorManager.java:55)
at
weblogic.rmi.internal.DescriptorManager.getDescriptor(DescriptorManager.java:39)
at
weblogic.rmi.internal.DescriptorManager.getDescriptor(DescriptorManager.java:30)
at
weblogic.rmi.internal.OIDManager.getRequestDispatcher(OIDManager.java:281)
at
weblogic.rmi.internal.OIDManager.getReplacement(OIDManager.java:270)
at
weblogic.rmi.internal.OIDManager.replaceObject(OIDManager.java:98)
at
weblogic.common.internal.ChunkedObjectOutputStream.replaceObject(ChunkedObjectOutputStream.java:55)
at
weblogic.common.internal.ChunkedObjectOutputStream$NestedObjectOutputStream.replaceObject(ChunkedObjectOutputStream.java:239)
Any idea?
- SteveC"Pyung Yoon" <[email protected]> writes:
MediatorInterface mediator = (MediatorInterface) java.rmi.Naming.lookup("rmi://localhost:7001/TestMediator);This implies JRMP which the server does not support. You need to use t3 or iiop.
andy -
I need to run multiple external programs concurrently using RMI objects.
have a web based solutiion which uses a backend machine for some processing. I have a RMI based Java proram running on the backend machine and the web server talks with this backend machine through RMI. Now, on this backend machine, I need to call some external program using Process s = Runtime.getRuntime().exec(....). Since this is a web application, multiple clients will connect at the same time and I need to run this external program for multiple clients at the same time.
Here is what I do. I have a separate RMI object bound to registry for each client that connects to the web server. This RMI object implements runnable interface, since I can't extend this class from Thread (it already extends from UnicastRemoteObject). So each time I call upon a method from this object, only one process gets started and other objects need to wait till this process finishes.
I need to start multiple processes at the sametime so that other clients don't have to wait for this thread to finish.
Please let me know if anybody has any other solution than installing an application server on this backend machine.
Here is my code.
public class iLinkOnlineSession extends UnicastRemoteObject implements Session, Serializable, Runnable
public iLinkOnlineSession(String sessName, String sessId, String rootLogs, String rootWrks) throws RemoteException
setSessionId(sessId);
setName(sessName);
ROOT_LOGS = rootLogs;
ROOT_WORKSPACE = rootWrks;
searchKeys_ = new Vector();
searchObjects_ = new Hashtable();
Thread s = new Thread(this);
s.start();
public void run()
System.out.println("running");
public String checkLogin(String user, String passwd)
String msg = "";
String cmd = "iLinkOnlineLogin";
cmd += " param "+ user + " param " + passwd;
System.out.println("cmd: " + cmd);
try
Runtime run = Runtime.getRuntime();
Process proc = run.exec(cmd); // Call to the external program.
InputStream in = proc.getInputStream();
Reader inp = new InputStreamReader(in);
BufferedReader rd = new BufferedReader(inp);
String line = rd.readLine();
while(line != null)
System.out.println(line);
msg += line;
line = rd.readLine();
int res = proc.waitFor();
}catch(Exception e)
e.printStackTrace();
System.out.println("Msg: " + msg);
return msg;
public String searchObject(String user, String passwd, String param1, String paramVal1, String param2, String paramVal2, String param3, String paramVal3, String relLev, String mfgLoc)
String cmd = "iLinkOnlineSearch";
cmd += " param " + user + " param " + passwd + " param " + getSessionId() + " param " + logFile_ + " param " + param1 + " param " + paramVal1 +
" param " + param2 + " param " + paramVal2 + " param " + param3 + " param " + paramVal3 + " param "
+ relLev + " param " + mfgLoc;
System.out.println("cmd: " + cmd);
try
Runtime run = Runtime.getRuntime();
Process proc = run.exec(cmd); // External program.
InputStream in = proc.getInputStream();
Reader inp = new InputStreamReader(in);
BufferedReader rd = new BufferedReader(inp);
FileWriter out = new FileWriter(resultFile_);
System.out.println("Filename: "+resultFile_);
BufferedWriter wout = new BufferedWriter(out);
String line = rd.readLine();
while(line != null)
System.out.println(line);
wout.write(line);
wout.newLine();
wout.flush();
line = rd.readLine();
int res = proc.waitFor();
wout.close();
if(res == 0)
boolean ret = createResultTable();
if(ret == true)
return GlobalConstants.SUCCESS_MSG;
else
return GlobalConstants.ERROR_MSG;
}catch(Exception e)
e.printStackTrace();
System.out.println("getting results");
return GlobalConstants.ERROR_MSG;
}I guess I don't get it.
RMI servers are inherently multi-threaded, so why are you running separate servers for every client? -
Home Stub is bound or Home object is bound in JNDI
Hi,
When I lookup Home i get home stub at client side. My question is what is bound in JNDI tree Home stub or object of Home implementation class which is implemented by Server?
thanxMy understanding:
It is the stub that gets bound to the JNDI. From the client side, we look up the JNDI for the home stub. The stub knows how to communicate with it's corresponding server object(Home) thru the skeleteon(I think the concept of skeleton in RMI is deprecated now..) -
Trouble in storing and retrieving RMI object in Weblogic 7 JNDI tree.
I have created a simple server (BankImpl), implementing a RMI interface
called Bank. A stub class (BankImpl_Stub.class) is generated from BankImpl
class using
"rmic -v1.2". Then I bind an instance of the BankImpl class to the JNDI tree
in Weblogic
server 7 under the name of "PeopleBank".
After the binding, I can see the stub class in the JNDI tree, but with a
different name: BankImpl_WLStub.class). when a
client program is trying to lookup the stub associated with "PeopleBank", it
failed with a puzzling message:
java.io.NotSerializableException: BankImpl_WLStub
Why a stub of a RMI object is not serializable? Does Weblogic needs a
different rmic to generate RMI stubs?
Thanks,
LianI have created a simple server (BankImpl), implementing a RMI interface
called Bank. A stub class (BankImpl_Stub.class) is generated from BankImpl
class using
"rmic -v1.2". Then I bind an instance of the BankImpl class to the JNDI tree
in Weblogic
server 7 under the name of "PeopleBank".
After the binding, I can see the stub class in the JNDI tree, but with a
different name: BankImpl_WLStub.class). when a
client program is trying to lookup the stub associated with "PeopleBank", it
failed with a puzzling message:
java.io.NotSerializableException: BankImpl_WLStub
Why a stub of a RMI object is not serializable? Does Weblogic needs a
different rmic to generate RMI stubs?
Thanks,
Lian -
How can we determine exactly what server an RMI object is bound to?
We have RMI objects that bind to a server in a cluster. How can we determine for
monitoring purposes what server a RMI object is currently bound to /executing
on?
We have tried the most of the Mbeans but can't find one that returns runtime info
for startup classes or RMI objects.
We have a new monitoring requirement we are trying to satisfy.try get the value of PKEY_OfflineAvailability using shell property system APIs (SHGetPropertyStoreFromParsingName or ShellFolderItem.ExtendedProperty)
Visual C++ MVP -
How to register RMI object with runnign Weblogic Server instance?
I need to write some RMI objects(non EJB) and register it with the already running weblogic server so that I can access them from a RMI client.
Can some help me with this?So more precisely the way I am doing it is
I have a remote interface
package com.myserv.rmi;
public interface NSPQueryExecutionService extends java.rmi.Remote
public void getQueryExecutionDelegate();
I have the Implementation as
package com.myserv.rmi;
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
public class NSPQueryExecutionServiceImpl
implements NSPQueryExecutionService
public static final void main (String[] arg) {
try {
Properties properties = null;
properties = new Properties();
properties.put (Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
Context context = new InitialContext(properties);
context.bind("QueryExecutionService", new NSPQueryExecutionServiceImpl());
System.out.println("================================> QueryExecutionService Bound");
} catch (Exception ex){
ex.printStackTrace();
System.out.println("Unable to start QueryExecutionService");
public NSPQueryExecutionServiceImpl()
public void getQueryExecutionDelegate()
System.out.println("inside remote");
I compile these classes and I do a weblogic.rmic as
java weblogic.rmic com.myserv.rmi.NSPQueryExecutionServiceImpl
I run the NSPQueryExecutionServiceImpl class to bind the RMIObject with the weblogic server.
Finally when I try to access this from my client it is able to access the object but when I invoke an operation on it gives the exception that RJVM is already shutdown.
Edited by kuldeep.sharma at 02/15/2007 9:37 AM -
Objects returned via JNDI Lookup
All,
I have had this nagging question in my head about JNDI lookups for some time
now, but haven't had the time to do the proper research. The question is
simple.
The setup is simple as well. Suppose that we have a typical WLS setup, with
WLS running in a JVM on a server host somewhere, with objects bound to its
JNDI tree (we'll leave clustering out of the picture for simplicity's sake),
and we also have a WLS client Java application. The client connects to WLS
and performs various JNDI lookups on the server. Some of these objects
implement java.io.Serializable, some do not.
The question is, if the client uses JNDI to lookup an object that exsts in a
separate JVM, and that object does not implement Serializable, how does this
object come to be instantiated on the client?
This leads to a second question: What exactly is getting returned from a
JNDI lookup? A reference to an object or a copy of it? I can see that
lookups within a single JVM would return a reference, but the cross-JVM
lookup is less clear to me.
Any and all help appreciated,
-jcThis leads to a second question: What exactly is getting returned from a
JNDI lookup?From how I understand it, only Serializable objects are returned such as RMI
stubs, which serve as proxies to EJB or other RMI servers registered in JNDI.
- Thomas
(ex-BONY too)
Jonathan Castellani wrote:
All,
I have had this nagging question in my head about JNDI lookups for some time
now, but haven't had the time to do the proper research. The question is
simple.
The setup is simple as well. Suppose that we have a typical WLS setup, with
WLS running in a JVM on a server host somewhere, with objects bound to its
JNDI tree (we'll leave clustering out of the picture for simplicity's sake),
and we also have a WLS client Java application. The client connects to WLS
and performs various JNDI lookups on the server. Some of these objects
implement java.io.Serializable, some do not.
The question is, if the client uses JNDI to lookup an object that exsts in a
separate JVM, and that object does not implement Serializable, how does this
object come to be instantiated on the client?
This leads to a second question: What exactly is getting returned from a
JNDI lookup? A reference to an object or a copy of it? I can see that
lookups within a single JVM would return a reference, but the cross-JVM
lookup is less clear to me.
Any and all help appreciated,
-jc -
URGENT - javax.naming.NameNotFoundException No object bound to name
I'm working on a stateless EJB (JobDtlEJB) which calls another stateless EJB (FuncVSREJB). During runtime, the following message appear in application log:
[20/Feb/2006:00:16:56] INFO ( 2088): CORE3282: stdout: EJBGetter:getFuncVSRHome-to lookup[java:comp/env/ejb/funcvsr]
[20/Feb/2006:00:16:56] INFO ( 2088): CORE3282: stdout: [2006/02/21 00:16] {-VoiceSROut}
[20/Feb/2006:00:16:56] INFO ( 2088): CORE3282: stdout: JobDtlEJB exception FuncVSR:javax.naming.NameNotFoundException: No object bound to name java:comp/env/ejb/funcvsr
Would appreciate if anyone kind help!!!
Below is my portion of codes in JobDtlEJB:
import com.util.EJBGetter;
public class JobDtlEJB implements javax.ejb.SessionBean {
private transient javax.ejb.SessionContext m_ctx = null;
private FuncVSRHome myfuncvsrHome;
private FuncVSR myfuncvsrRemote;
public void ejbCreate() throws javax.ejb.CreateException {
System.out.println("ejbCreate() on obj " + this);
public String getConnect(String InjobID) {
try
myfuncvsrHome = EJBGetter.getFuncVSRHome("java:comp/env/ejb/funcvsr");
myfuncvsrRemote = myfuncvsrHome.create();
} catch(Exception ee) {
cFunction.NonIMErrLog("-VoiceSROut", "JobDtlEJB exception FuncVSR:"+ee.toString(), true);
ee.printStackTrace();
Coding inside EJBGetter:
package com.util;
import javax.rmi.PortableRemoteObject;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import com.ejb.*;
public final class EJBGetter {
public static FuncVSRHome getFuncVSRHome(String jndiName) throws NamingException
InitialContext initial = new InitialContext();
System.out.println("EJBGetter:getFuncVSRHome-to lookup["+jndiName+"]");
Object objref = initial.lookup( jndiName );
System.out.println("EJBGetter:getFuncVSRHome-narrow["+jndiName+"]");
FuncVSRHome ejb2Home = ( FuncVSRHome ) PortableRemoteObject.narrow( objref, FuncVSRHome.class );
System.out.println("EJBGetter:getFuncVSRHome-returning EJB Home for ["+jndiName+"]");
return ejb2Home;
} // EJBGetter
Below is my ejb-jar.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN' 'http://java.sun.com/dtd/ejb-jar_2_0.dtd'>
<ejb-jar>
<enterprise-beans>
<session>
<display-name>TheFuncVSR</display-name>
<ejb-name>TheFuncVSR</ejb-name>
<home>com.ejb.FuncVSRHome</home>
<remote>com.ejb.FuncVSR</remote>
<ejb-class>com.ejb.FuncVSREJB</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Bean</transaction-type>
</session>
<session>
<display-name>TheJobDtl</display-name>
<ejb-name>TheJobDtl</ejb-name>
<home>com.ejb.JobDtlHome</home>
<remote>com.ejb.JobDtl</remote>
<ejb-class>com.ejb.JobDtlEJB</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Bean</transaction-type>
</session>
</enterprise-beans>
</ejb-jar>
THe following is my sun-ejb-jar.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sun-ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Sun ONE Application Server 7.0 EJB 2.0//EN' 'http://www.sun.com/software/sunone/appserver/dtds/sun-ejb-jar_2_0-0.dtd'>
<!-- Copyright 2002 Sun Microsystems, Inc. All rights reserved. -->
<sun-ejb-jar>
<enterprise-beans>
<unique-id>1</unique-id>
<ejb>
<ejb-name>TheJobDtl</ejb-name>
<jndi-name>jobdtl</jndi-name>
</ejb>
<ejb>
<ejb-name>TheFuncVSR</ejb-name>
<jndi-name>funcvsr</jndi-name>
</ejb>
</enterprise-beans>
</sun-ejb-jar>
The web.xml file content:
<ejb-ref>
<ejb-ref-name>ejb/jobdtl</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<home>com.ejb.JobDtlHome</home>
<remote>com.ejb.JobDtl</remote>
<ejb-link>TheJobDtl</ejb-link>
</ejb-ref>
<ejb-ref>
<ejb-ref-name>ejb/funcvsr</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<home>com.ejb.FuncVSRHome</home>
<remote>com.ejb.FuncVSR</remote>
<ejb-link>TheFuncVSR</ejb-link>
</ejb-ref>
</web-app>I've solved this issue in ejb-jar.xml. This is because of <ejb-ref-name> in ejb-jar.xml is unmatched with that in web.xml
<ejb-ref-name>ejb/funcvsr</ejb-ref-name>
Jsut sharing to you all. :) -
RMI object bindings bot being replicated
I have a two node cluster setup for testing. I am creating an RMI
object on one server and binding it into the JNDI tree. I can see the
binding on the server where the object was bound but I never see
anything in the JNDI tree of the other server in the cluster.
I have tried adding WLContext.REPLICATE_BINDINGS=true to my
InitialContext. I've also tried compiling the RMI object with
weblogic.rmic as clusterable. Neither seems to have made any
difference.
Any assistance will be appreciated.
Thanks and regards,
Bob
Thanks for the reply. Please see my responses inline:
In article <[email protected]>, [email protected]
says...
> Bob,
>
> A couple of questions
> 1> Whether your multicast address is working properly? Perform the
> multicast test and verify this.
What is the multicast test? The console cluster monitor screen shows
both servers sending and receiving message fragments. Both servers show
zero for Lost Multicast Messages.
> 2> How are you deploying the RMI object (to the cluster or individual
> servers)?
I'm not sure what you mean by "deploying the RMI object". The RMI
object is created by a startup class and bound to the JNDI tree on one
server in the cluster. It appears in the tree it where it was bound but
not the tree on the other server.
> 3> What version of WLS and Service pack are you using?
WLS 6.1 SP1 Load3
> 4> Could you try our sample example in the \cluster\rmi folder?
This exhibits the same behavior I'm seeing in my app.
Thanks for your help.
Regards,
Bob
>
>
> Bob Withers wrote:
>
> > I have a two node cluster setup for testing. I am creating an RMI
> > object on one server and binding it into the JNDI tree. I can see the
> > binding on the server where the object was bound but I never see
> > anything in the JNDI tree of the other server in the cluster.
> >
> > I have tried adding WLContext.REPLICATE_BINDINGS=true to my
> > InitialContext. I've also tried compiling the RMI object with
> > weblogic.rmic as clusterable. Neither seems to have made any
> > difference.
> >
> > Any assistance will be appreciated.
> >
> > Thanks and regards,
> > Bob
>
>
-
RMI Objects running on single cluster memb. only avail on that
Hi,
My setup:
An RMI object shall be bound to a single cluster member.
Only one cluster member has therefore the startup entry. The
RMI Object is thus instantiated only in this one cluster member.
I now expected to have the weblogic.rmi.myclass JNDI entry
replicated into all cluster member's jndi context (thus having
a simple way for implementing a singleton? does this work??).
All clients, which are loadbalanced to a cluster-member
that does not the startup entry will fail to lookup the rmi object's
entry
with the following.
Why is the entry not replicated into the other machines naming context?
javax.naming.NameNotFoundException: 'mybindname'; remaining name
'mybindname'
at
weblogic.rmi.extensions.BasicRequest.sendReceive(BasicRequest.java:44)
at
weblogic.jndi.WLContext_WLStub.lookup(WLContext_WLStub.java:192)
at
weblogic.jndi.toolkit.WLContextStub.lookup(WLContextStub.java:545)
at mypackage.MyClass.lookup(...);
Thank you for any help on this & happy new year
Toby
We too are looking to achieve the same thing. Anyone know the answer to
Tobias's question?
david
Tobias Christen wrote:
> Hi,
>
> My setup:
> An RMI object shall be bound to a single cluster member.
> Only one cluster member has therefore the startup entry. The
> RMI Object is thus instantiated only in this one cluster member.
> I now expected to have the weblogic.rmi.myclass JNDI entry
> replicated into all cluster member's jndi context (thus having
> a simple way for implementing a singleton? does this work??).
>
> All clients, which are loadbalanced to a cluster-member
> that does not the startup entry will fail to lookup the rmi object's
> entry
> with the following.
>
> Why is the entry not replicated into the other machines naming context?
>
> javax.naming.NameNotFoundException: 'mybindname'; remaining name
> 'mybindname'
> at
> weblogic.rmi.extensions.BasicRequest.sendReceive(BasicRequest.java:44)
> at
> weblogic.jndi.WLContext_WLStub.lookup(WLContext_WLStub.java:192)
> at
> weblogic.jndi.toolkit.WLContextStub.lookup(WLContextStub.java:545)
> at mypackage.MyClass.lookup(...);
>
> Thank you for any help on this & happy new year
> Toby
David Michaels <[email protected]>
Director of Technology
ShockMarket Corporation (650) 330-4665
[david.vcf]
-
Hi all,
I am looking for some information about clustering RMI objects. I have read as much
as I can find about it, not much seems to be in the wl docs.
I have read that if the server that bound the rmi object into jndi goes down, the
rmi server will no longer work. When I tested this out, the server seemed to continue
working and using the node in the cluster that was still running.
I am wondering what the difference between declaring the RMI object to be clusterable
and setting the WLContext.REPLICATE_BINDINGS flag to false when creating the context
to bind the RMI objects, and binding a seperate RMI object into the tree, one for
each node in the cluster.
is there some docs I can read about this? Thanks for any information you can give
me about this.
-chrisbwit <[email protected]> wrote:
In article <[email protected]>, [email protected]
says...
Hi all,Hi Chris.
I am looking for some information about clustering RMI objects. I haveread as much
as I can find about it, not much seems to be in the wl docs.
I have read that if the server that bound the rmi object into jndi goesdown, the
rmi server will no longer work. When I tested this out, the server seemedto continue
working and using the node in the cluster that was still running.If a server offering an RMI object via JNDI goes down the binding to
that object is removed from JNDI in all the other servers in the
cluster. Other replicas of that object may be available and will
continue to be used as you discovered.
I am wondering what the difference between declaring the RMI object tobe clusterable
and setting the WLContext.REPLICATE_BINDINGS flag to false when creatingthe context
to bind the RMI objects, and binding a seperate RMI object into the tree,one for
each node in the cluster.Marking the RMI object as clusterable causes WLS to generate a replica
aware stub for it. This stub is aware of all the replicas of the object
within the cluster and provides load balancing and failover. When you
bind a RMI object on multiple servers with REPLICATE_BINDINGS set to
false you have a bunch of individual, unrelated objects. Your clients
must contact the particular server running the objects and there will be
no load balancing or failover, all client calls will be serviced by the
object on the server which supplied the stub.
is there some docs I can read about this? Thanks for any informationyou can give
me about this.I thought the WLS RMI Programmer's Guide was pretty clear about how this
worked.
Well, you are right, the docs are clear on what they talk about, but as I mentioned,
when I marked the objects with REPLICATE_BINDINGS set to false, the client still
sent a comma delimited list of servers to create the InitialContext, and we still
observed load balancing, and what looked like failover. This is why we were confused,
we expected to see only one server do all the work (the first in the comma delimited
list), and for failures when that server was brought down. I will take a look at
our configuration and make sure we didnt make a mistake someplace in here.
Regards,
Bob
-chris -
Hello,
I get this exception: No object bound to name java:comp/env/mail/SendSession
I am trying to build automatic mail sending in my application
I have configured my server with the next information and this code:
-Error, exception:
No object bound to name java:comp/env/mail/SendSession
-Code:
InitialContext ic = null;
Session session = null;
String snName = "";
// I HAVE TRIED WITH SEVERAL STRINGS
snName = "java:comp/env/mail/SendSession";
//snName = "/mail/SendSession";
//snName = "mail/SendSession";
//snName = "/SendSession";
//snName = "SendSession";
try {
ic = new InitialContext();
session = (Session) ic.lookup(snName);
} catch (NamingException ex) {
Logger.getLogger("org.xxxx").warning("Error:. " + ex.getLocalizedMessage());
-Server:
Sun Java System Application Server Platform Edition 9.0 update 1.
-Configuration in Sun\AppServer\domains\domain1\config\domain.xml:
<resources>
<mail-resource debug="true" enabled="true" from="[email protected]" host="yahoo.es" jndi-name="mail/SendSession" object-type="user" store-protocol="imap" store-protocol-class="com.sun.mail.imap.IMAPStore" transport-protocol="smtp" transport-protocol-class="com.sun.mail.smtp.SMTPTransport" user="xxxxx">
<description>sesion envio correo</description>
<property name="mail.transport.protocol" value="smtp"/>
<property name="mail.smtp.server" value="smtp.mail.yahoo.com"/>
<property name="mail.smtp.port" value="2473"/>
</mail-resource>
</resources>
<servers>
<server config-ref="server-config" lb-weight="100" name="server">
<resource-ref enabled="true" ref="mail/SendSession"/>
</server>
</servers>
I need your help.
Thanks in advance.
Pedro.(This isn't really a JavaMail question...)
The JNDI name you use in your application
is a name that's local to your application.
The JNDI name that you configure in domain.xml
is a global JNDI name.
The two names can be different.
In the (e.g.) sun-web.xml file you need to
specify the mapping from the local JNDI
name you use in your application to the
global JNDI name you've configured in
the server.
If you use dependency injection to inject
the Session object, you can specify this
mapping in the @Resource annotation in
your source code.
Maybe you are looking for
-
Runtime error while creating sales order in VA01
Dear all, In our develpment server(ecc 6.0),while creating sales order in VA01 for a sales area, when ever entering material number and quantity and press enter, it is giving error and taking to Runtime error long text showing syntax error in program
-
Adobe Flash Player 11.3.300.265
I downloaded this new update and it didn't work at all. I again had to uninstall and reinstall Adobe 10.3. I don't want to keep going through this. How can I find out when a new update works with Firefox? Does anyone know if Firefox is working on an
-
Numprocs option in opmn.xml is not working for me
Hi Folks, I wat to try numprocs=2 to create 2 JVMs and try some load runs to check the performance improvements. When I went to server Config page in administration tab of EM. There I see the "number of VMs" input box is disable. So I directly went t
-
How do i change the mail preview in Lion from a vertical read to a horizontal read
I just switched from Snow leopard to Lion and i don't like the way that Lion has the mail preview set up as a 3 column vertical format. I thought in Snow Leopard you could change the set-up so it's either horizontal or vertical, but I can't seem to
-
Sync Zone can't connect to Gmail
Hi, My Sync Zone can't connect to my Gmail Account. Domain name is [email protected]. All is proper set up but it fail atthe connection. Is anybody having the same issue? Does it exist any alternative to synchronize contact and calendar with my Xperi