Clustering EJB
can anyone tell me how to:
1. cluster EJB
2. how does my client class locate clustered EJB from the JNDI tree
i am currently using weblogic 6.1
thanks
This is not a simple question that can be answered in the forums. BEA has decent documentation on setting up clustering. It requires a few steps like:
Getting a broadcast IP address,having a clustering license, setting up master and slave app servers, etc. You really need to go here and start your journey:
http://edocs.bea.com/wls/docs61/adminguide/
Paul
Similar Messages
-
I am trying to use a custom to Router class to dynamically load balance session beans between 2 servers in a cluster. I force the class to return only one server but I still see cluster load balance the beans between the 2 servers. I can see the router class being called but it does not seem to be used.Am I missing something?? Please Advice.ThanksRoshan
After clustering, you need to have cluster wide JNDI tree structure.
"Ramesh" <[email protected]> wrote:
>
>Hi,
>
>Ths is my first week on Weblogic6.1. I need some very basic info about
>clustering
>EJB's. Working on a Win2000 environment.
>
>Any help would be welcome.
>
>Thanks in advance
-
I am using a cluster of two servers and deploying my business logic (ejb) as a
cluster service. The war file (servlets) are deployed in as seperate server acting
as only a web server.
I get problem in aquiring the home object of my ejb. To get the handle to InitialContext,
I use the properties file and the PROVIDER_URL is the url of the admin server
of the cluster.
The ejb' are not deployed in the admin server, only in the two clustered machines.
The problem is that when the servlet gets the initial context and tries to lookup
the home, it gets a null value. There is no JNDI tree for the deployed ejb's in
the admin server.
Is there something wrong with my set up. Using WLS 6.1 sp2. The stack trace -
javax.naming.NameNotFoundException: Unable to resolve PrincipalFacade. Resolved:
'' Unresolved:'PrincipalFacade' ; remaining name ''
at weblogic.rmi.internal.BasicOutboundRequest.sendReceive(BasicOutboundRequest.java:85)
at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:255)
at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:222)
at weblogic.rmi.internal.ProxyStub.invoke(ProxyStub.java:35)
at $Proxy58.lookup(Unknown Source)
at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:323)
at javax.naming.InitialContext.lookup(InitialContext.java:350)
at com.pws.ubiquity.ad.util.ADEJBUtil.getHome(ADEJBUtil.java:111)
at com.pws.ubiquity.ad.util.ADEJBUtil.getRemotePrincipalFacade(ADEJBUtil.java:209)
at com.pws.ubiquity.common.web.action.LoginAction.authenticate(LoginAction.java:197)
at com.pws.ubiquity.common.web.action.LoginAction.perform(LoginAction.java:109)
at org.apache.struts.action.ActionServlet.processActionPerform(ActionServlet.java:1786)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1585)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:509)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:265)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:200)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:2456)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2039)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
java.lang.NullPointerException: narrowFrom'null' narrowTo:'interface com.
pws.ubiquity.ad.business.PrincipalFacadeHome'It is invalid to call narrow with
n
ull parameters
at weblogic.iiop.PortableRemoteObjectDelegateImpl.narrow(PortableRemoteO
bjectDelegateImpl.java:51)
at javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:137)
at com.pws.ubiquity.ad.util.ADEJBUtil.getRemotePrincipalFacade(ADEJBUtil
.java:211)
at com.pws.ubiquity.common.web.action.LoginAction.authenticate(LoginActi
on.java:197)
at com.pws.ubiquity.common.web.action.LoginAction.perform(LoginAction.ja
va:109)
at org.apache.struts.action.ActionServlet.processActionPerform(ActionSer
vlet.java:1786)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:158
5)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:509)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
pl.java:265)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
pl.java:200)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe
rvletContext.java:2456)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm
pl.java:2039)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
javax.naming.NameNotFoundException: Unable to resolve PermissionFacade. Resolved
: '' Unresolved:'PermissionFacade' ; remaining name ''
at weblogic.rmi.internal.BasicOutboundRequest.sendReceive(BasicOutboundR
equest.java:85)
at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteR
ef.java:255)
at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteR
ef.java:222)
at weblogic.rmi.internal.ProxyStub.invoke(ProxyStub.java:35)
at $Proxy58.lookup(Unknown Source)
at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:323)
at javax.naming.InitialContext.lookup(InitialContext.java:350)
at com.pws.ubiquity.ad.util.ADEJBUtil.getHome(ADEJBUtil.java:111)
at com.pws.ubiquity.ad.util.ADEJBUtil.getRemotePermissionFacade(ADEJBUti
l.java:265)
at com.pws.ubiquity.common.web.action.LoginAction.authenticate(LoginActi
on.java:198)
at com.pws.ubiquity.common.web.action.LoginAction.perform(LoginAction.ja
va:109)
at org.apache.struts.action.ActionServlet.processActionPerform(ActionSer
vlet.java:1786)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:158
5)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:509)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
pl.java:265)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
pl.java:200)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe
rvletContext.java:2456)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm
pl.java:2039)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
PROVIDER_URL is either the localhost (if EJB and client at the same server) or
cluster address (e.g., comma separated ip:port address). admin server is not you
want. Just think the cluster can run even the admin server is down.
"vivek" <[email protected]> wrote:
>
>I am using a cluster of two servers and deploying my business logic (ejb)
>as a
>cluster service. The war file (servlets) are deployed in as seperate
>server acting
>as only a web server.
>
>I get problem in aquiring the home object of my ejb. To get the handle
>to InitialContext,
>I use the properties file and the PROVIDER_URL is the url of the admin
>server
>of the cluster.
>
>The ejb' are not deployed in the admin server, only in the two clustered
>machines.
>The problem is that when the servlet gets the initial context and tries
>to lookup
>the home, it gets a null value. There is no JNDI tree for the deployed
>ejb's in
>the admin server.
>
>Is there something wrong with my set up. Using WLS 6.1 sp2. The stack
>trace -
>
>javax.naming.NameNotFoundException: Unable to resolve PrincipalFacade.
>Resolved:
> '' Unresolved:'PrincipalFacade' ; remaining name ''
> at weblogic.rmi.internal.BasicOutboundRequest.sendReceive(BasicOutboundRequest.java:85)
> at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:255)
> at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:222)
> at weblogic.rmi.internal.ProxyStub.invoke(ProxyStub.java:35)
> at $Proxy58.lookup(Unknown Source)
> at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:323)
> at javax.naming.InitialContext.lookup(InitialContext.java:350)
> at com.pws.ubiquity.ad.util.ADEJBUtil.getHome(ADEJBUtil.java:111)
> at com.pws.ubiquity.ad.util.ADEJBUtil.getRemotePrincipalFacade(ADEJBUtil.java:209)
> at com.pws.ubiquity.common.web.action.LoginAction.authenticate(LoginAction.java:197)
> at com.pws.ubiquity.common.web.action.LoginAction.perform(LoginAction.java:109)
> at org.apache.struts.action.ActionServlet.processActionPerform(ActionServlet.java:1786)
> at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1585)
> at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:509)
>
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:265)
> at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:200)
> at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:2456)
> at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2039)
> at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
> at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
>java.lang.NullPointerException: narrowFrom'null' narrowTo:'interface
>com.
>pws.ubiquity.ad.business.PrincipalFacadeHome'It is invalid to call narrow
>with
>n
>ull parameters
> at weblogic.iiop.PortableRemoteObjectDelegateImpl.narrow(PortableRemoteO
>bjectDelegateImpl.java:51)
> at javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:137)
> at com.pws.ubiquity.ad.util.ADEJBUtil.getRemotePrincipalFacade(ADEJBUtil
>.java:211)
> at com.pws.ubiquity.common.web.action.LoginAction.authenticate(LoginActi
>on.java:197)
> at com.pws.ubiquity.common.web.action.LoginAction.perform(LoginAction.ja
>va:109)
> at org.apache.struts.action.ActionServlet.processActionPerform(ActionSer
>vlet.java:1786)
> at org.apache.struts.action.ActionServlet.process(ActionServlet.java:158
>5)
> at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:509)
>
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
>pl.java:265)
> at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
>pl.java:200)
> at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe
>rvletContext.java:2456)
> at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm
>pl.java:2039)
> at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
> at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
>javax.naming.NameNotFoundException: Unable to resolve PermissionFacade.
>Resolved
>: '' Unresolved:'PermissionFacade' ; remaining name ''
> at weblogic.rmi.internal.BasicOutboundRequest.sendReceive(BasicOutboundR
>equest.java:85)
> at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteR
>ef.java:255)
> at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteR
>ef.java:222)
> at weblogic.rmi.internal.ProxyStub.invoke(ProxyStub.java:35)
> at $Proxy58.lookup(Unknown Source)
> at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:323)
> at javax.naming.InitialContext.lookup(InitialContext.java:350)
> at com.pws.ubiquity.ad.util.ADEJBUtil.getHome(ADEJBUtil.java:111)
> at com.pws.ubiquity.ad.util.ADEJBUtil.getRemotePermissionFacade(ADEJBUti
>l.java:265)
> at com.pws.ubiquity.common.web.action.LoginAction.authenticate(LoginActi
>on.java:198)
> at com.pws.ubiquity.common.web.action.LoginAction.perform(LoginAction.ja
>va:109)
> at org.apache.struts.action.ActionServlet.processActionPerform(ActionSer
>vlet.java:1786)
> at org.apache.struts.action.ActionServlet.process(ActionServlet.java:158
>5)
> at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:509)
>
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
>pl.java:265)
> at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
>pl.java:200)
> at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe
>rvletContext.java:2456)
> at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm
>pl.java:2039)
> at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
> at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
>
-
Weblogic7/examples/clustering/ejb Automatic failover for idempotent methods ?
This one should be easy since it is from the examples folder of bea 7 about
clustering.
Ref : \bea7\weblogic007\samples\server\src\examples\cluster\ejb
I am referring to the cluster example provided with the weblogic server 7.0
on windows 2000.
I deployed Admin server and 2 managed server as described in document.
Everything works fine as shown by the example. I get load balancing and
failover both. Too Good.
Client.java is using the while loop to manage the failover. So on exception
it will go thru the loop again.
I understand from the documentation that the stateless session EJB will
provide the automatic failover for Idempotent stateless bean
Case Failover Idempotent : ( Automatic )
If methods are written in such a way that repeated calls to the same method
do not cause duplicate updates, the method is said to be "idempotent." For
idempotent methods, WebLogic Server provides the
stateless-bean-methods-are-idempotent deployment property. If you set this
property to "true" in weblogic-ejb-jar.xml, WebLogic Server assumes that the
method is idempotent and will provide failover services for the EJB method,
even if a failure occurs during a method call.
Now I made 2 changes to the code.
1 . I added as follows to the weblogic-ejb-jar.xml of teller stateless EJB
<stateless-clustering>
<stateless-bean-is-clusterable>true</stateless-bean-is-clusterable>
<stateless-bean-load-algorithm>random</stateless-bean-load-algorithm>
<stateless-bean-methods-are-idempotent>true</stateless-bean-methods-are-idem
potent>
</stateless-clustering>
So I should get the automatic failover .............
2. Also I added the break statement in the catch on line around 230 in
Client .java
catch (RemoteException re) {
System.out.println(" Error: " + re);
// Replace teller, in case that's the problem
teller = null;
invoke = false;
break;
So that the client program does not loop again and again.
Now I compile and restart all my three servers and redeploy application (
just to be sure )
I start my client and I get a automatic load balancing between the server
which makes me happy.
But Failover ....?
I kill one of the managed application server in cluster at any particular
test fail point.
I expect the exception to be taken care automatically by error/failover
handler in the home/remote stub
But the client program fails and terminates.
1. What is wrong with the code ?
2. Does the automatic failover with the indempotent methods also has to be
taken care by coding the similar while loop for stateless ejb ?
Your help will be appreciated ASAP.
Let me know if you need any thing more from my system. But I am sure this
will be very easy as it is from the sample code.........
Thanks
Sorry I meant to send this to the ejb newsgroup.
dan
dan benanav wrote:
> Do any vendors provide for clustering with automatic failover of entity
> beans? I know that WLS does not. How about Gemstone? If not is there
> a reason why it is not possible?
>
> It seems to me that EJB servers should be capable of automatic failover
> of entity beans.
>
> dan
-
ExportException+StubNotFoundException in Clustered EJB Deployment
Hi All,
I'm a Newbie to WebLogic and would appreciate help in solving my problem.
I am running WLS 5.1sp6 on NT4 and am trying to implement a two server cluster on one machine.
The cluster runs fine, but as soon as I try to deploy our EJBs in the cluster level properties file I get the exceptions listed in the attached log.
In a standalone environment the EJBs function flawlessly but not in a cluster.
Notice that the EJB is successfully deployed to the server but the exception crops up a little further down the track.
The only unusual thing about the environment I can think of is the WebLogic CLASSPATH is disabled.
The EJB deployment descriptor contains:
<clustering-descriptor>
<home-is-clusterable>True</home-is-clusterable>
<stateless-bean-is-clusterable>True</stateless-bean-is-clusterable>
</clustering-descriptor>
Any ideas?
Thanks in advance,
Andrew
[weblogic.log]
Hi all,
It seems it was a classpath problem ...I put the ejb jar file in the java classpath and now it works like a charm.
Thanks for the tip Chris!
Andrew
"Chris Jones" <[email protected]> wrote:
>
>Hi,
>
>Sounds like a classpath problem. The cluster is trying to instantiate the EJB but the stub is not in the weblogicclasspath. I’m not sure what you mean when you say it is disabled.
>
>Hope this helps,
>
>Chris
>
>"Andrew Quinan" <[email protected]> wrote:
>>
>>
>>
>>Hi All,
>>
>>I'm a Newbie to WebLogic and would appreciate help in solving my problem.
>>
>>I am running WLS 5.1sp6 on NT4 and am trying to implement a two server cluster on one machine.
>>
>>The cluster runs fine, but as soon as I try to deploy our EJBs in the cluster level properties file I get the exceptions listed in the attached log.
>>
>>In a standalone environment the EJBs function flawlessly but not in a cluster.
>>Notice that the EJB is successfully deployed to the server but the exception crops up a little further down the track.
>>
>>The only unusual thing about the environment I can think of is the WebLogic CLASSPATH is disabled.
>>
>>The EJB deployment descriptor contains:
>><clustering-descriptor>
>> <home-is-clusterable>True</home-is-clusterable>
>> <stateless-bean-is-clusterable>True</stateless-bean-is-clusterable>
>></clustering-descriptor>
>>
>>Any ideas?
>>
>>Thanks in advance,
>>Andrew
>
-
Clustering EJB's Across a Wide-Area-Network
Hi Eric,
If you have a highly reliable database access or replication strategy, I
feel it is better to rely on that for failover across sites. IMHO.
Peace,
Cameron Purdy
Tangosol, Inc.
http://www.tangosol.com/coherence.jsp
Tangosol Coherence: Clustered Replicated Cache for Weblogic
"Eric Ma" <[email protected]> wrote in message
news:[email protected]...
>
> As we are facing the same decision I am really interested in this thread.
Are
> you suggesting that because multicast across a WAN is not as reliable as
in a
> LAN environment, so we shouldn't use it? Do you think it is better to
have multiple
> LAN-based WebLogic clusters which do not talk to each other, and rely on
database
> replication for failover? Thanks for any advice.
>
> Eric Ma
>
> "Cameron Purdy" <[email protected]> wrote:
> >>>I am working with a customer that is considering clustering several
> >>>Stateless EJB's across a Wide-Area-Network and I'd like to find out
> >if
> >>>anyone else has successfully implemented such an environment. If so,
> >what
> >>>were the implications (performance, reliability, whatever). If not,
> >perhaps
> >>>someone can provide an alternative method for accomplishing load
balancing
> >>>and failover between the 2 sites.
> >
> >> WLS clustering should work fine across WAN., But as you know multicast
> >> is not a reliable protocol so you should be very careful in setting
> >up
> >> the routers which will route the multicast packets across subnets.
> >As
> >> long as multicast packets live and sent reliably over the network you
> >> should be fine.
> >
> >WLS can cluster fine across a lightly-loaded relatively-reliable WAN.
> >You do
> >need to turn on the ability to multi-cast across the WAN, which is
usually
> >a
> >battle in and of itself. Usually, a separate cluster of WLS is run on
> >each
> >end of the WAN, and is not clustered across the WAN. The real question
> >for
> >setting up multi-site DR plans with Weblogic is "what are you failing
> >over
> >across the sites?"
> >
> >For example, do you have replicated databases? Master/slave or both live?
> >How do you detect site failure? Is the database at a different site with
> >the
> >WL servers at their own 2 sites? Usually it's the database that handles
> >the
> >multi-site failover, not the WebLogic.
> >
> >BTW - if you're using Coherence with WebLogic, in our 1.2.1 release we
> >have
> >added a compression network filter that can drastically improve
throughput
> >with WAN clustering. It is available starting with 1.2.1 build 86, which
> >is
> >planned for availability later today.
> >
> >Peace,
> >
> >Cameron Purdy
> >Tangosol, Inc.
> >http://www.tangosol.com/coherence.jsp
> >Tangosol Coherence: Clustered Replicated Cache for Weblogic
> >
> >
> >"Kumar Allamraju" <[email protected]> wrote in message
> >news:[email protected]...
> >>
> >
> >
> >
>
-
Here is my scenario:
- Weblogic cluster with three instances of the server;
- On cluster is deployed an EJB stateless.
- Launch the test client with three addresses: t3 :/ / localhost: 7003, localhost: 7004, localhost: 7005;
- The client connects easily and enables you to understand about quele node in the cluster makes the call;
- Properly run the round robin (server1 - server2 server3 and so on)
- Stop the node one and the application continues to run only on server2 and server 3 correctly (failover)
- I restart the server1 but the application is always and only on server2 and server3. (ignore that the server is Tormato of 1).
My question is:
But it should not be weblogic to inform the client that the server is back up?Here is my scenario:
- Weblogic cluster with three instances of the server;
- On cluster is deployed an EJB stateless.
- Launch the test client with three addresses: t3 :/ / localhost: 7003, localhost: 7004, localhost: 7005;
- The client connects easily and enables you to understand about quele node in the cluster makes the call;
- Properly run the round robin (server1 - server2 server3 and so on)
- Stop the node one and the application continues to run only on server2 and server 3 correctly (failover)
- I restart the server1 but the application is always and only on server2 and server3. (ignore that the server is Tormato of 1).
My question is:
But it should not be weblogic to inform the client that the server is back up? -
Using hardware LB w/ clustered EJBs
In the context of hardware load-balancers the BEA docs only address the web tier.
They never address the EJB tier. My question: can a replica-aware EJB proxy work
through a HW LB? e.g.,
EJB Client --> HWLB --> EJB Server
It seems to me that it would work fine. The replica-aware proxy will be doing
some load-balancing along with the HWLB, but that should not be a problem. Especially
since we are using read-only stateless session beans.
Does anyone have experience with this?
Thanks,
Rhett
Any load-balancing will work for stateless EJBs. We've used round-robin DNS
for this.
Mike
"Rhett Guthrie" <[email protected]> wrote in message
news:3c4338ed$[email protected]..
>
> In the context of hardware load-balancers the BEA docs only address the
web tier.
> They never address the EJB tier. My question: can a replica-aware EJB
proxy work
> through a HW LB? e.g.,
>
> EJB Client --> HWLB --> EJB Server
>
> It seems to me that it would work fine. The replica-aware proxy will be
doing
> some load-balancing along with the HWLB, but that should not be a problem.
Especially
> since we are using read-only stateless session beans.
>
> Does anyone have experience with this?
>
> Thanks,
> Rhett
-
Hi !
I have set up two instances of WebLogic on the same physical machine ie. multi-homed. I am also able to deploy 'xyz' bean on both the instances and call bean methods through a client application. Unable to achieve the same through a client JSP. I get the following message displayed ....
Inconsistent cookie, primary != me
And, interestingly, no Exceptions are thrown on both the server windows.
Any hints or leads ...???
Thanks
Vikram Kulkarni
You don't need the DNS at all. You can just hard code all these ip addresses
as parameters of the HttpClusterServlet.
If you do use the DNS, use the DNS name which maps to two ip addresses as
the parameter of the HttpClusterServlet.
something like this:
defaultServers=serverA:7001|serverB:7001
Hope this helps
Vikram Kulkarni <[email protected]> wrote in message
news:[email protected]...
>
> Oh ! i was unaware about using the WLS as a proxy server in the Web
Layer(as per recommended 2-tier architecture) by using HttpClusterServlet
proxy to access JSPs.
>
> Now, I have enabled HttpClusterServlet proxy to access JSPs.
>
> I get the following error when attempting to access the URL
http://localhost:7001/Test/fooBeanClient.jsp
>
> "Cannot find server or DNS Error"
>
> Do i need to do something with 'localhost' so that the DNS on my machine
(Windows NT 4) maps this to the either of the two IP addresses running the
separate instances of WL.
> (I have a multi-homed configuration)
>
> Thanks !
> Vikram
>
>
> Dimitri Rakitine <[email protected]> wrote:
> >Do you use plugin or HttpClusterServlet proxy to access JSPs?
> >
> >Vikram Kulkarni <[email protected]> wrote:
> >
> >> Hi !
> >> I have set up two instances of WebLogic on the same physical machine
ie. multi-homed. I am also able to deploy 'xyz' bean on both the instances
and call bean methods through a client application. Unable to achieve the
same through a client JSP. I get the following message displayed ....
> >
> >> Inconsistent cookie, primary != me
> >
> >> And, interestingly, no Exceptions are thrown on both the server
windows.
> >
> >> Any hints or leads ...???
> >
> >> Thanks
> >> Vikram Kulkarni
> >
> >
> >Dimitri
>
-
How to keep track of EJBs in case of failover under clustered environment?
Does anybody know what happens with a stateless session EJB in
weblogic 5.1 under clustered environment, in case of a failover (if
one of computers dies), the one, which keeps that ejb in a pool?
Does that EJB automatically go to the state "does not exist"?
Is method ejbRemove() then called on that EJB?
Or is it still in the "method-ready pool" state? Without ejbCreate()
method being called on this EJB?
Or does it disappear completely without those methods being called on
this EJB?
I need to organize some kind of tracking for those EJBs, and it is
critically important for me to understand what exactly methods are
called on those EJBs.
I saw this, but it does not answer my question:
Clustered EJB
All EJBs are clusterable. If an EJB is deployed on multiple servers in
the cluster, each of these servers will be able to host instances of
the bean. This does not necessarily mean, however, that the bean
instances are clustered.
EJB Homes
All bean homes are clusterable. When a bean is deployed on a server,
its home is bound into the cluster-wide naming service. Because homes
are clusterable, each server can bind an instance of the home under
the same name. When a client looks up this home, it gets a
replica-aware stub that has a reference to the home on each server
that deployed the bean. When create() or find() is called, the
replica-aware stub routes the call to one of the replicas. The home
replica that receives the finds or creates an instance of the bean on
its server.
Stateless EJBs
When a home creates a stateless bean, it returns a replica-aware stub
that can route to any server on which the bean is deployed. Because a
stateless bean holds no state on behalf of the client, the stub is
free to route any call to any server that hosts the bean. Also,
because the bean is clustered, the stub can automatically fail over in
the event of a failure. The stub does not automatically treat the bean
as idempotent, so it will not recover automatically from all failures.
If the bean has been written with idempotent methods, this can be
noted in the deployment descriptor and automatic fail-over will be
enabled in all cases.
ThanksCheck out Java's support for udo/redo: [http://java.sun.com/javase/6/docs/api/javax/swing/undo/package-summary.html]
Also, google the "Memento Pattern".
You don't have to make copies of objects, just maintain commands the can undo and redo your program's state. -
If your servlets are running in the same instance as your EJBs, do you
need to make the EJBs clusterable (i.e. set the deployment descriptor
properties)? We have the same EJBs deployed on each server (5.1 SP8)
and we have been getting conflict handler errors for each EJB when we
start the second server (shown below)
Wed Aug 01 09:05:37 CEST 2001:<I> <ConflictHandler> ConflictStop
com.es.messaging.ESMessageQueueManagerHome_EO:com.es.messaging.ESMessageQueueManagerBeanEOImpl
(from
[email protected]:[7001,7001,7002,7002,7001,-1])
Support tells us that if EJBs are deployed on every server in a cluster,
then they MUST be configured to be clusterable. Why is that? Since
they are running in the same JVM as the servlets, we don't want EJB load
balancing or fault tolerance.. I would think that the non-clusterable
EJBs would not be added to the the cluster-wide JNDI. Also, we have
deployed this way in SP 5 and 6.0 SP2 and we never got any conflict
errors. If we do need to make them clusterable, can someone explain
why? Thanks.
Kirk
If you're using WLS 9.x, then I would package the ejb-client-jar as a library.
If you're using an older version, then you have the 2 choices you mentioned (packaging it in each war file or putting in on the classpath.)
The advantage of the classpath is you have the file in only 1 place. The disadvantage is you must restart the server to update it.
Placing it in each webapp means you have N copies of the jar file, but you'll be able to take an update by just redeploying the webapp not restarting the entire server.
WLS 9.x's libraries give you the best of both worlds. You only manage 1 copy of the file, but you do not need to restart the server. You can also have multiple versions of a given library.
-- Rob
WLS Blog http://dev2dev.bea.com/blog/rwoollen/ -
CDI not working in Weblogic 12c Embedded EJB Container?
Hi,
we are trying to use embedded ejb container from weblogic 12c (12.1.2.0) for our junit tests.
As our application is running in weblogic 12c, we would like to run our tests in same environment.
But we encountered two problems, which brings me to the conclusion that CDI is not working correctly in embedded ejb container.
1. CDI Interceptor are not working
2. CDI Objects (@Inject) are null
I can provide an error message, which I think is thrown, when container tries to access the interceptor, because if I delete the interceptors the error message gets no longer thrown:
Caused by: java.lang.UnsupportedOperationException: authenticatedLookup is unavailable for BasicNamingNode types
at weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:234)
at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:463)
at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:274)
at weblogic.jndi.internal.ServerNamingNode_12120_WLStub.authenticatedLookup(UnknownSource)
at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:483)
We just want to know, if CDI is not working in embedded ejb container, so we can go ahead and look for another solution for our junit tests.
StefanHi There,
If you have access to Oracle Support Portal, please go through below Knowledge Articles which can provide more information on your requirement:
Sample Application Using Timer API (CommonJ) to configure Timer Based tasks in Oracle WebLogic Cluster 10.3.X Cluster (Doc ID 1614886.1)
Clustered EJB Timer - The minimum time for recurring execution of a timer (Doc ID 1931091.1)
Let us know if it helps.
Cheers,
Naveen -
Problem with clustering with JBoss server
Hi,
Its a HUMBLE REQUEST TO THE EXPERIENCED persons.
I am new to clustering. My objective is to attain clustering with load balencing and/or Failover in JBoss server. I have two JBoss servers running in two diffferent IP addresses which form my cluster. I could succesfully perform farm (all/farm) deployment
in my cluster.
I do believe that if clustering is enabled; and if one of the server(s1) goes down, then the other(s2) will serve the requests coming to s1. Am i correct? Or is that true only in the case of "Failover clustering". If it is correct, what are all the things i have to do to achieve it?
As i am new to the topic, can any one explain me how a simple application (say getting a value from a user and storing it in the database--assume every is there in a WAR file), can be deployed with load balencing and failover support rather than going in to clustering EJB or anything difficult to understand.
Kindly help me in this mattter. Atleast give me some hints and i ll learn from that.Becoz i could n't find a step by step procedure explaining which configuration files are to be changed to achieve this (and how) for achiving this. Also i could n't find Books explaining this rather than usual theorectical concepts.
Thanking you in advance
with respect
abhiramihi ,
In this scenario u can use the load balancer instead of fail over clustering .
I would suggest u to create apache proxy for redirect the request for many jboss instance.
Rgds
kathir -
Problem with clustering with JBoss server---help needed
Hi,
Its a HUMBLE REQUEST TO THE EXPERIENCED persons.
I am new to clustering. My objective is to attain clustering with load balencing and/or Failover in JBoss server. I have two JBoss servers running in two diffferent IP addresses which form my cluster. I could succesfully perform farm (all/farm) deployment
in my cluster.
I do believe that if clustering is enabled; and if one of the server(s1) goes down, then the other(s2) will serve the requests coming to s1. Am i correct? Or is that true only in the case of "Failover clustering". If it is correct, what are all the things i have to do to achieve it?
As i am new to the topic, can any one explain me how a simple application (say getting a value from a user and storing it in the database--assume every is there in a WAR file), can be deployed with load balencing and failover support rather than going in to clustering EJB or anything difficult to understand.
Kindly help me in this mattter. Atleast give me some hints and i ll learn from that.Becoz i could n't find a step by step procedure explaining which configuration files are to be changed to achieve this (and how) for achiving this. Also i could n't find Books explaining this rather than usual theorectical concepts.
Thanking you in advance
with respect
abhiramihi ,
In this scenario u can use the load balancer instead of fail over clustering .
I would suggest u to create apache proxy for redirect the request for many jboss instance.
Rgds
kathir -
Deploying EJBs on multiple nodes
Hi,
Our Application works when we deploy it on a single node. But the moment we deploy
it with multiple nodes,we are getting a exception:
java.lang.NoClassDefFoundError: javax/xml/bind/UnmarshalException
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:120)
Our deployment looks correct for me.
We have specified each node in the target like:
<EJBComponent Name="ecommerce" Targets="monode3,monode2,monode1,monode4,monode5,monode6"
URI="ecommerce.jar"/>
Any clues from anyone?
Thanks,
JeevaYou didn't give the full stack trace. No thread starts executing at
Class.forName ;-)
What's happening is that you are dealing with XML, probably in your
clustered EJBs or in your HTTP session, and so it's getting replicated. The
XML pops out onto the other end of the wire, the code loaded from the system
classpath tries to deserialize it, but can't find your application classes.
That's a common problem with object transfer protocols.
Do you know where you are using javax/xml?
Peace,
Cameron Purdy
Tangosol Inc.
Tangosol Coherence: Clustered Coherent Cache for J2EE
Information at http://www.tangosol.com/
"Jeeva" <[email protected]> wrote in message
news:3c3a8401$[email protected]..
>
Hi,
Our Application works when we deploy it on a single node. But the momentwe deploy
it with multiple nodes,we are getting a exception:
java.lang.NoClassDefFoundError: javax/xml/bind/UnmarshalException
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:120)
Our deployment looks correct for me.
We have specified each node in the target like:
<EJBComponent Name="ecommerce"Targets="monode3,monode2,monode1,monode4,monode5,monode6"
URI="ecommerce.jar"/>
Any clues from anyone?
Thanks,
Jeeva
Maybe you are looking for
-
Format calendar component times to "hh:mm a"
Hi all, I would like to format the calendar component time slots to "hh:mm a" (Example 01:30 AM), Is it possible? By default, caldendar component shows times in hh:mm (Example 24:00) format. regards, Jhon
-
Receiver determintation using Abap Mapping
Hi, I configured a scenario in which I'm using extended receiver determination to determine the receiver of an incoming message. (The reason for this is that there is only one XI system and two ECC systems - DEV and QAS. By means of the setting in a
-
TS2771 why my iPod touch is not turning on
why is that my iPod touch does not turning on???
-
IMac issues with displaying Internet images
Recently my iMac hasn't been displaying some images on the Internet correctly. For example the header of bbc.co.uk/news looks like a TV searching for a scrambled signal, but the rest of the images on the page are fine. There are a few other sites tha
-
I Have a 2008 MacBook, I don't recall what system is is running but I believe it's previous to Lion. My SuperDrive died so I bought a USB drive thinking it would work and it didn't. I found online a trick that edited a boot file (library/system/sys