Read only entity beans
Is there any way to mark an entity bean as read only? I'm using glassfish V2.
JPA does not define a read-only concept, but TopLink Essentials (glassfish v2 persistence) does. You can use a DescriptorCustomizer to set your TopLink Descriptor to be read-only (descriptor.setReadOnly()).
TopLink 11g, and EclipseLink (Glassfish v3) also provider a query hint for returning read-only objects at the query level ("eclipselink.return-shared").
-- James : EclipseLink
Similar Messages
-
Problem with Read-Only Entity Bean
Hi All,
I have an Read-Only BMP that just read data from 20 tables and stores them in a Collection. In a 'Read-Only' Entity bean, the ejbLoad() is supposed to called periodically as defined by 'read-timeout-seconds' parameter in 'weblogic-ejb-jar.xml'. But this doesn't happen. Every time I invoke the EJB, ejbCreate() and ejbLoad() get called. Any suggestions will be highly appreciated.
Here is the content of my 'weblogic-ejb-jar.xml' file.
<?xml version="1.0"?>
<!DOCTYPE weblogic-ejb-jar PUBLIC
'-//BEA Systems, Inc.//DTD WebLogic 6.0.0 EJB//EN'
'http://www.bea.com/servers/wls600/dtd/weblogic-ejb-jar.dtd'>
<weblogic-ejb-jar>
<weblogic-enterprise-bean>
<ejb-name>beanManaged</ejb-name>
<entity-descriptor>
<entity-cache>
<max-beans-in-cache>1</max-beans-in-cache>
<read-timeout-seconds>5</read-timeout-seconds>
<concurrency-strategy>ReadOnly</concurrency-strategy>
</entity-cache>
</entity-descriptor>
<jndi-name>beanManaged</jndi-name>
</weblogic-enterprise-bean>
</weblogic-ejb-jar>
Thanks,
PremYes, it calls ejbLoad() at intervals defined by read-timeout-seconds, but only when bean
is requested by the client, and the cached copy is old. If bean just sits in the cache
unused no ejbLoad()'s will be called.
Prem Raghupathy <[email protected]> wrote:
The weblogic document on 'Setting Entity EJBs to Read-Only' says "WebLogic Server
never calls ejbStore() for a read-only entity EJB. ejbLoad() is called initially
when the EJB is created; afterwards, WebLogic Server calls ejbLoad() only at intervals
defined by the read-timeout-seconds deployment parameter.". Here is the link to
the document
http://edocs.bea.com/wls/docs61/ejb/EJB_environment.html#1074846
Dimitri Rakitine <[email protected]> wrote:
WebLogic doesn't reload Read-Only entity beans periodically. It loads
bean instance only when client requests it, and instance is not in the
cache, or cached instance is older than read-timeout-seconds.
Prem Raghupathy <[email protected]> wrote:
This is a multi-part message in MIME format.
---=_newsgroups3c21148f
Content-Type: text/plain
Content-Transfer-Encoding: 7bit
Rajesh,
Thanks for your reply. I’m using WL6.1 sp1. When I log the methodcalls,
this is what I see on the server console.
SetEntityContext()
ejbCreate()
ejbPostCreate()
ejbLoad()
As you see, the ejbLoad() doesn’t get called every 5 sec, eventhough I
set the ‘read-timeout-seconds=5’ in the weblogic-ejb-jar.xml,
Do you have a working example for Read-Only BMP on WL6.1? The examplesdirectory
in weblogic 6.1 doesn’t have one.
Also find attached all the files. Any suggestions will be highly appreciated.
Thanks,
Prem.
Rajesh Mirchandani <[email protected]> wrote:
What version of the Server and Service pack are you using? Turn on
JDBC
logging and see if every ejbLoad() hits the DB.
prem wrote:
Hi All,
I have an Read-Only BMP that just read data from 20 tables and storesthem in a Collection. In a 'Read-Only' Entity bean, the ejbLoad() is
supposed to called periodically as defined by 'read-timeout-seconds'
parameter in 'weblogic-ejb-jar.xml'. But this doesn't happen. Every
time I invoke the EJB, ejbCreate() and ejbLoad() get called. Any suggestions
will be highly appreciated.
Here is the content of my 'weblogic-ejb-jar.xml' file.
<?xml version="1.0"?>
<!DOCTYPE weblogic-ejb-jar PUBLIC
'-//BEA Systems, Inc.//DTD WebLogic 6.0.0 EJB//EN'
'http://www.bea.com/servers/wls600/dtd/weblogic-ejb-jar.dtd'>
<weblogic-ejb-jar>
<weblogic-enterprise-bean>
<ejb-name>beanManaged</ejb-name>
<entity-descriptor>
<entity-cache>
<max-beans-in-cache>1</max-beans-in-cache>
<read-timeout-seconds>5</read-timeout-seconds>
<concurrency-strategy>ReadOnly</concurrency-strategy>
</entity-cache>
</entity-descriptor>
<jndi-name>beanManaged</jndi-name>
</weblogic-enterprise-bean>
</weblogic-ejb-jar>
Thanks,
Prem--
Rajesh Mirchandani
Developer Relations Engineer
BEA Support
---=_newsgroups3c21148f
Content-Type: application/x-zip-compressed; name="C:\WebGain\bea\wlserver6.1\samples\examples\ejb20\basic\beanManaged\beanManaged.zip"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="beanManaged.zip"
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
---=_newsgroups3c21148f----
Dimitri
Dimitri -
Read Only entity beans and Finders
Hi,
We are using Read Only entity beans with WLS 7.0 SP1 for some entities that represent Reference Data that will never change. What I would like to know is whether WLS needs to hit the database when a finder on these beans is run or does WLS cache the results of the Finder also?
Thanks.
SantoshHi,
we use read only entity beans. It is beneficial if have findByPrimaryKey finders. but we also have finders on non primary key coloumn also. is there a way to cache such local references returned by such non primary key finders also. -
Load balancing not happending but fail over is for Read only Entity beans
The following are the configuration.
Two NT servers with WL5.1 sp9 having only EJBs(Read only entity beans)
One Client with WL5.1 sp9 having servlet/java application as
EJB client.
I am trying to make a call like findbyprimarykey in one of the
entity bean. I could see the request is being directed only to the one of the
server always. When I bring that server, fail over is happening to the other server.
Here are the settings I have in the ejb-jar.xml :
<entity>
<ejb-name>device.StartHome</ejb-name>
<home>com.wl.api.device.StartHome</home>
<remote>com.wl.api.device.StartRemote</remote>
<ejb-class>com.wl.server.device.StartImpl</ejb-class>
<persistence-type>Bean</persistence-type>
<prim-key-class>java.lang.Long</prim-key-class>
<reentrant>False</reentrant>
<resource-ref>
<res-ref-name>jdbc/wlPool</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</entity>
Here are the settings I have in the weblogic-ejb-jar.xml.
<weblogic-enterprise-bean>
<ejb-name>device.StartHome</ejb-name>
<caching-descriptor>
<max-beans-in-cache>50</max-beans-in-cache>
<cache-strategy>Read-Only</cache-strategy>
<read-timeout-seconds>900</read-timeout-seconds>
</caching-descriptor>
<reference-descriptor>
<resource-description>
<res-ref-name>jdbc/wlPool</res-ref-name>
<jndi-name>weblogic.jdbc.pool.wlPool</jndi-name>
</resource-description>
</reference-descriptor>
<enable-call-by-reference>False</enable-call-by-reference>
<jndi-name>device.StartHome</jndi-name>
</weblogic-enterprise-bean>
Am I doin any mistake in this?
Any one's help is appreciated.
Thanks
Suresh
we are using 5.1
"Gene Chuang" <[email protected]> wrote in message
news:[email protected]...
> Colocation optimization occurs if your client resides in the same
container (and also in the same
> EAR for 6.0) as your ejbs.
>
> Gene
>
> "Suresh" <[email protected]> wrote in message
news:[email protected]...
> > Ok....the ejb-call-by-reference set to true is making the call to one
server
> > only. i am not sure why it is. I removed the property name and it
works.
> > Also I have one question, in our prduct environment, when i cache the
ejb
> > home it is not doing the load balancing. can any one help me for that.
> > thanks
> >
> > Mike,
> > From the sample pgm I sent, even from single client calls get load
> > balanced.
> >
> > Suresh
> >
> >
> > "Gene Chuang" <[email protected]> wrote in message
> > news:[email protected]...
> > > In WL, LoadBalancing will ONLY WORK if you reuse your EJBHome! Take
your
> > StartEndPointHome lookup
> > > out of your for loop and see if this fixes your problem.
> > >
> > > I've seen this discussion in ejb-interest, and some other vendor
(Borland,
> > I believe it is), brings
> > > up an interesting point: Clustering and LoadBalance is not in the
J2EE
> > specs, hence implementation
> > > is totally up to the vendor. Weblogic loadbalances from the remote
> > interfaces (EJBObject, EJBHome,
> > > etc..), while Borland loadbalances from JNDI Context lookup.
> > >
> > > Let me suggest a third implmentation: loadbalance from BOTH Context
> > lookup as well as stub method
> > > invocation! Or create a smart replica-aware list manager which
persists
> > on the client thread
> > > (ThreadLocal) and is aware of lookup/evocation history. Hence if I do
the
> > following in a client
> > > hitting a 3 node cluster, I'll still get perfect round-robining
regardless
> > of what I do on the
> > > client side:
> > >
> > > InitialContext ctxt = new InitialContext();
> > > EJBHome myHome = ctxt.lookup(MY_BEAN);
> > > myHome.findByPrimaryKey(pk); <== hits Node #1
> > > myHome = ctxt.lookup(MY_BEAN);
> > > myHome.findByPrimaryKey(pk); <== hits Node #2
> > > myHome.findByPrimaryKey(pk); <== hits Node #3
> > > myHome = ctxt.lookup(MY_BEAN);
> > > myHome.findByPrimaryKey(pk); <== hits Node #1
> > > ...
> > >
> > >
> > > Gene
> > >
> > > "Suresh" <[email protected]> wrote in message
> > news:[email protected]...
> > > > Mike ,
> > > >
> > > > Do you have any reasons for the total number of machines to be 10.
> > > >
> > > > I tried with 7 machines.
> > > >
> > > >
> > > > Here is my sample client java application running individual in the
> > seven
> > > > machines.
> > > >
> > > > StartEndPointHome =
> > > > (StartEndPointHome)ctx.lookup("dev.StartEndPointHome");
> > > > for(;;)
> > > > {
> > > > // logMsg(" --in loop "+currentTime);
> > > > if (currentTime > nextRefereshTime)
> > > > {
> > > > logMsg("****- going to call");
> > > > currentTime=getSystemTime();
> > > > nextRefereshTime=currentTime+timeInterval;
> > > > StartEndPointHome =
> > > > (StartEndPointHome)ctx.lookup("dev.StartEndPointHome");
> > > > long rndno=(long)(Math.random()*10)+range;
> > > > logMsg(" going to call remotestub"+rndno);
> > > > retVal =
> > > >
> >
((StartEndPointHome)getStartHome()).findByNumber("pe"+rndno+"_mportal_dsk36.
> > > > mportal.com");
> > > >
> > > > logMsg("**++- called stub");
> > > > }
> > > >
> > > >
> > > >
> > > > The range value is different for each of the machines in the
cluster.
> > > >
> > > > If the first request starts at srv1, all request starts hitting the
same
> > > > server.
> > > > If the first request starts at srv2, all request starts hitting the
same
> > > > server.
> > > >
> > > > I have the following for the url , user and pwd values for the
context
> > .
> > > >
> > > > public static String url="t3://10.11.12.14,10.11.12.117:8000";
> > > > public static String user="guest";
> > > > public static String password="guest";
> > > >
> > > >
> > > >
> > > > It would be great if you could help me.
> > > >
> > > > Thanks
> > > > suresh
> > > >
> > > >
> > > > "Mike Reiche" <[email protected]> wrote in message
> > > > news:[email protected]...
> > > > >
> > > > > If you have only one client don't be surprised if you only hit one
> > server.
> > > > Try
> > > > > running ten different clients and see if the hit the same server.
> > > > >
> > > > > Mike
> > > > >
> > > > >
> > > > > "suresh" <[email protected]> wrote:
> > > > > >
> > > > > >The following are the configuration.
> > > > > >
> > > > > > Two NT servers with WL5.1 sp9 having only EJBs(Read only entity
> > beans)
> > > > > >
> > > > > > One Client with WL5.1 sp9 having servlet/java application as
> > > > > > EJB client.
> > > > > >
> > > > > >
> > > > > >I am trying to make a call like findbyprimarykey in one of the
> > > > > >entity bean. I could see the request is being directed only to
the
> > one
> > > > > >of the
> > > > > >server always. When I bring that server, fail over is happening
to
> > the
> > > > > >other server.
> > > > > >
> > > > > >
> > > > > >Here are the settings I have in the ejb-jar.xml :
> > > > > > <entity>
> > > > > > <ejb-name>device.StartHome</ejb-name>
> > > > > > <home>com.wl.api.device.StartHome</home>
> > > > > > <remote>com.wl.api.device.StartRemote</remote>
> > > > > > <ejb-class>com.wl.server.device.StartImpl</ejb-class>
> > > > > > <persistence-type>Bean</persistence-type>
> > > > > > <prim-key-class>java.lang.Long</prim-key-class>
> > > > > > <reentrant>False</reentrant>
> > > > > > <resource-ref>
> > > > > > <res-ref-name>jdbc/wlPool</res-ref-name>
> > > > > > <res-type>javax.sql.DataSource</res-type>
> > > > > > <res-auth>Container</res-auth>
> > > > > > </resource-ref>
> > > > > > </entity>
> > > > > >
> > > > > >
> > > > > >Here are the settings I have in the weblogic-ejb-jar.xml.
> > > > > >
> > > > > ><weblogic-enterprise-bean>
> > > > > > <ejb-name>device.StartHome</ejb-name>
> > > > > >
> > > > > > <caching-descriptor>
> > > > > > <max-beans-in-cache>50</max-beans-in-cache>
> > > > > > <cache-strategy>Read-Only</cache-strategy>
> > > > > > <read-timeout-seconds>900</read-timeout-seconds>
> > > > > > </caching-descriptor>
> > > > > >
> > > > > > <reference-descriptor>
> > > > > > <resource-description>
> > > > > > <res-ref-name>jdbc/wlPool</res-ref-name>
> > > > > > <jndi-name>weblogic.jdbc.pool.wlPool</jndi-name>
> > > > > > </resource-description>
> > > > > > </reference-descriptor>
> > > > > > <enable-call-by-reference>False</enable-call-by-reference>
> > > > > > <jndi-name>device.StartHome</jndi-name>
> > > > > > </weblogic-enterprise-bean>
> > > > > >
> > > > > >
> > > > > >Am I doin any mistake in this?
> > > > > >
> > > > > >Any one's help is appreciated.
> > > > > >Thanks
> > > > > >Suresh
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>
-
Primary Key for Read Only Entity Beans In EJB 3.0
Hi,
I have checked the spec for ejb 3.0 which mentions that, there is no common standard for the vendor to implement the Read only Entity Beans.
My question over here is how it is implemented in OC4J??
Do we need to specify a primary key attribute in the read-only entity bean?
w.r.t BC4J(ADF) i remember, we used to create a read-only View Object with out specifying a primary key.
Just want to check is that the way it works in EJB 3.0 (Implemented by OC4J).
Thanks for your help in advance.
ShivaHi,
Try using the JBoss embedded container:
http://docs.codehaus.org/display/MAVENUSER/How+to+use+the+JBoss+Embedded+EJB3+Container+for+Unit+testing
/klejs -
Read Only Entity Bean will not cache
I'm using the Sun Java Application Server version 8.2. I've created a read only entity bean with a 900 second refresh. This bean has a findAll() method that I've created. The table it is reading from has only 22 rows of data that doesn't change (well, maybe 2 or 3 times a year).
As stated I've set the read-only property to true and the refresh to 900 seconds. I've also set the caching settings, which I guess i don't really need to mess with from the defaults.
I do not seem to be achieving any caching at all. My check for this is very simple. I simply load a drop down in the client application with these 22 values. After the intial load I add another row in the database. The newley added row always shows up in the drop down in real time. If i'm caching correctly I shouldn't see this value until the refresh time of 900 seconds. Is there something I am missing? I'm using NetBeans 5.0 to set the values of the entity beans and such.
Thanks for the help!
ryanHi Ryan,
The 8.2 read-only bean implementation still executes non-findByPrimaryKey queries within the database.
If your application calls findByPrimaryKey or accesses a business method on one of the
read-only beans returned from a query, that will not result in a database access (unless a refresh
period boundary is crossed).
We have added the additional optimization of caching specific result sets of non-findByPrimaryKey
read-only bean finders in the latest development version of Glassfish (V2).
https://glassfish.dev.java.net/public/downloadsindex.html#Official_supported_builds
It will also be available in our Application Server release 9.1. There are no plans to backport this
optimization to the 8.2 codebase.
--ken -
Re: Read Only Entity Bean
I am trying to convert an entity bean into a read only bean .
I am not sure how it works ? I read the documentation and it said that I had to
set
the following parameters
cache-strategy>Read-Write</cache-strategy>
read-timeout-seconds>100</read-timeout-seconds>
If I set the time out time to 100 seconds will the container call the ejbLoad
method
to reload the bean after every 100 seconds or only when the a request is made
on the
bean
Thanks a lot in advance for your answers.Kevin,
"Kevin" <[email protected]> wrote in message
news:3ec25923$[email protected]..
I am trying to convert an entity bean into a read only bean .
I am not sure how it works ? I read the documentation and it said that Ihad to
set
the following parameters
cache-strategy>Read-Write</cache-strategy>
read-timeout-seconds>100</read-timeout-seconds>
If I set the time out time to 100 seconds will the container call theejbLoad
method
to reload the bean after every 100 seconds or only when the a request ismade
on the
bean
Thanks a lot in advance for your answers.read-timeout-seconds make sense only for Read-Only
cache strategy and defines cache element expiration time.
For Read-Write strategy data will be loaded from the database
in with every new transaction (if db-is-shared set to true).
Hope this helps.
Regards,
Slava Imeshev -
Session bean calling read-only entiti bean
I have a session bean that is calling a read-only entity bean. I gets the remote
reference to the bean ok but when I call a method on the entity bean it locks.
After 5 minutes the call executes but then the session bean times out. Is there
any special setting I need to do this? I set both transaction attributes to Required.
Thanks,
Tim5.1
Seth White <[email protected]> wrote:
>
Hi.
What release are you using?
Seth
Tim wrote:
I have a session bean that is calling a read-only entity bean. I getsthe remote
reference to the bean ok but when I call a method on the entity beanit locks.
After 5 minutes the call executes but then the session bean timesout. Is there
any special setting I need to do this? I set both transaction attributesto Required.
Thanks,
Tim -
Rad-only Entity beans are replicated?
Hi. I have just read the document "Failover and Replication in a cluster": http://edocs.bea.com/wls/docs81/cluster/failover.html#1008850
I have no clear if read-only entity beans are replicated?
I understand that replica-aware stub does not mean that stub objects are replicated in all the servers of the cluster. This seems to be only for statefull session beans.
Thx.Hi,
we use read only entity beans. It is beneficial if have findByPrimaryKey finders. but we also have finders on non primary key coloumn also. is there a way to cache such local references returned by such non primary key finders also. -
Help reg. read only CMP bean in the examples!!
Hi,
I have been working with examples of EJB in WLS 6.1
I used the Access database with CMP.
The basic entity beans, both CMP and BMP worked well.
However when I tried the read-only Stock Bean and write StockWriter Beans... I received the following error... I am not sure what does it say...
==============================================
Beginning readMostly.Client...
Creating a StockWriter for BEAS
There was an exception while creating and using the Beans.
This indicates that there was a problem communicating with the server: java.rmi.RemoteException: EJB Exception:; nested exception is:
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver]Optional feature not implemented
Start server side stack trace:
java.rmi.RemoteException: EJB Exception:; nested exception is:
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver]Optional feature not implemented
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver]Optional feature not implemented
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6026)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:6183)
at sun.jdbc.odbc.JdbcOdbc.SQLBindInParameterFloat(JdbcOdbc.java:852)
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.setLong(JdbcOdbcPreparedStatement.java:575)
at weblogic.jdbc.pool.Statement.setLong(Statement.java:369)
at weblogic.jdbc.rmi.internal.PreparedStatementImpl.setLong(PreparedStatementImpl.java:114)
at weblogic.jdbc.rmi.SerialPreparedStatement.setLong(SerialPreparedStatement.java:147)
at ejb.readMostly.StockWriterBean_u4qwd5__WebLogic_CMP_RDBMS.__WL_create(StockWriterBean_u4qwd5__WebLogic_CMP_RDBMS.java:589)
at ejb.readMostly.StockWriterBean_u4qwd5__WebLogic_CMP_RDBMS.ejbCreate(StockWriterBean_u4qwd5__WebLogic_CMP_RDBMS.java:518)
at java.lang.reflect.Method.invoke(Native Method)
at weblogic.ejb20.manager.DBManager.create(DBManager.java:519)
at weblogic.ejb20.manager.DBManager.remoteCreate(DBManager.java:489)
at weblogic.ejb20.internal.EntityEJBHome.create(EntityEJBHome.java:190)
at ejb.readMostly.StockWriterBean_u4qwd5_HomeImpl.create(StockWriterBean_u4qwd5_HomeImpl.java:78)
at ejb.readMostly.StockWriterBean_u4qwd5_HomeImpl_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:305)
at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerRef.java:93)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:274)
at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:22)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
End server side stack trace
; nested exception is:
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver]Optional feature not implemented
Start server side stack trace:
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver]Optional feature not implemented
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6026)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:6183)
at sun.jdbc.odbc.JdbcOdbc.SQLBindInParameterFloat(JdbcOdbc.java:852)
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.setLong(JdbcOdbcPreparedStatement.java:575)
at weblogic.jdbc.pool.Statement.setLong(Statement.java:369)
at weblogic.jdbc.rmi.internal.PreparedStatementImpl.setLong(PreparedStatementImpl.java:114)
at weblogic.jdbc.rmi.SerialPreparedStatement.setLong(SerialPreparedStatement.java:147)
at ejb.readMostly.StockWriterBean_u4qwd5__WebLogic_CMP_RDBMS.__WL_create(StockWriterBean_u4qwd5__WebLogic_CMP_RDBMS.java:589)
at ejb.readMostly.StockWriterBean_u4qwd5__WebLogic_CMP_RDBMS.ejbCreate(StockWriterBean_u4qwd5__WebLogic_CMP_RDBMS.java:518)
at java.lang.reflect.Method.invoke(Native Method)
at weblogic.ejb20.manager.DBManager.create(DBManager.java:519)
at weblogic.ejb20.manager.DBManager.remoteCreate(DBManager.java:489)
at weblogic.ejb20.internal.EntityEJBHome.create(EntityEJBHome.java:190)
at ejb.readMostly.StockWriterBean_u4qwd5_HomeImpl.create(StockWriterBean_u4qwd5_HomeImpl.java:78)
at ejb.readMostly.StockWriterBean_u4qwd5_HomeImpl_WLSkel.invoke(Unknown Source)
at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:305)
at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerRef.java:93)
at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:274)
at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:22)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
End server side stack trace
End readMostly.Client...
==========================================
please help
SP
[att1.html]<entity-cache>
<max-beans-in-cache>...</max-beans-in-cache>
<read-timeout-seconds>...</read-timeout-seconds>
<concurrency-strategy>ReadOnly</concurrency-strategy>
</entity-cache>
I believe this is what you are looking for and this is part of entity-descriptor.
-- Prasad
Aruna wrote:
> Hi
> I am trying to develop few entity beans which is for only reading the
> data from the data base, As Read only entity beans are treated like stateless
> session beans(ie lead balancing at method calls as well auto failover) in the
> cluster. I want to know how to specify an entity bean as read only entity bean???
> ie in deployment descriptor so that ejb container treats it as a read only entity
> bean.
>
> Any help on this highly appreciated
>
> Thanks and Regards
> Aruna
-
Clustering read-write entity beans
reading the WLS 6.1 documentation, it's unclear to me whether read-write entity
bean
method calls load-balancing and failover are supported. here's an excerpt from
"Understanding Object Clustering":
"When a home finds or creates a read-write entity bean, it obtains an instance
on
the local server and returns a stub pinned to that server. Load balancing and
failover occur only at the home level."
but here's what i find under "The WebLogic Server EJB Container":
"read-write entity EJBs supports automatic failover on a safe exception,
if home-is-clusterable is set to true. For example, failover is automatically
supported if there is a failure after a method completes, or if the method
fails to connect to a server."
anyone know which is true?
yan
In WLS 6.1, there is fail-over for entity beans in a cluster. The stub contains a
special load-balancing algorithm that returns to your original server until it
fails. Then it will fail-over to a new server. If a server fails during a
method-call, automatic fail-over only happens on a safe exception. Basically, when
WLS determines that you have not actually connected to the failed server and have
not done any work in the current transaction.
-- Rob
Yan wrote:
> reading the WLS 6.1 documentation, it's unclear to me whether read-write entity
> bean
> method calls load-balancing and failover are supported. here's an excerpt from
> "Understanding Object Clustering":
>
> "When a home finds or creates a read-write entity bean, it obtains an instance
> on
> the local server and returns a stub pinned to that server. Load balancing and
> failover occur only at the home level."
>
> but here's what i find under "The WebLogic Server EJB Container":
>
> "read-write entity EJBs supports automatic failover on a safe exception,
> if home-is-clusterable is set to true. For example, failover is automatically
> supported if there is a failure after a method completes, or if the method
>
> fails to connect to a server."
>
> anyone know which is true?
>
> yan
AVAILABLE NOW!: Building J2EE Applications & BEA WebLogic Server
by Michael Girdley, Rob Woollen, and Sandra Emerson
http://learnWebLogic.com
[att1.html]
-
Hi,
is there a way to force the container to reload an Entity EJB (not read-only), something like read-timeout-seconds?
Thx,
A.So you mean you're changing the data in the database and the entity bean isn't picking up these changes?
If you call ejbLoad() the container will instruct the instance to synchronize its state by loading its state from the underlying database (so reload the ejb basically)
Depending on what app server you're using - you can tell the container to call ejbLoad(), even if the data is already in cache, by default. This will probably be a setting in some .xml file. -
Problem clicking on Read Only Logical Beans/Bean Modules
Hi,
I'm using Sun Java Studio 5 update 1 and use MS VSS to control my source. I have not integrated VSS with the s1s5. When I click on a read only module of beans, the ide pops up a whole lot of messages saying that it can't lock files because they are read only. So, I have to manually remove the read only attribute of the files, specially the .entejb and the .ejbdd files. This is a huge burden to me since some of my modules have more than 50 beans inside and it gives 50x2 popup messages when I expand the module.
can anybody give me a solution to this?
Thank you.Have you tried mounting as a Version Control filesystem. There is a topic in the Online Help titled "EJB Module Node" that might be helpful.It only mentions CVS and Clearcase as supported control systems. This might be because the topic was written before VSS support was added.
-
Garbage on console when using read-only entitiy beans
Hi.
I added some RO beans to out deployment, and it seems that it resulted
degredation in performance. The reason might be is that for every call for a
RO bean, there is something written in the weblogic window:
ejbContext == null- false
lockClient.equals pk- false
is it some leftover from debugging ? ;-)
it doesn't show on the weblogic.log though.
anyhhow, I'm using WLS 5.1, SP3, on NT and Solaris.
thanks.
-- EranPlease read "Service Pack 3 messages" in interest.ejb.
Cheers - Wei
Eran Erlich <[email protected]> wrote in message
news:8jaaud$18e$[email protected]..
Hi.
I added some RO beans to out deployment, and it seems that it resulted
degredation in performance. The reason might be is that for every call fora
RO bean, there is something written in the weblogic window:
ejbContext == null- false
lockClient.equals pk- false
is it some leftover from debugging ? ;-)
it doesn't show on the weblogic.log though.
anyhhow, I'm using WLS 5.1, SP3, on NT and Solaris.
thanks.
-- Eran -
Clustering read-only bean-managed entity ejbs
I'm designing a data caching approach that relies on using read-only entity ejbs with bean-managed persistence. My design is based on the fact that WebLogic blocks on entity bean access by concurrent users for a given bean instance (unique primary key). I would like to keep only one entity bean instance active(timeoutSetting=0) for eacy primary key for all users to share. That way I only have to hit the database one time to initially populate data in the entity bean. I'm worried about this approach in a WebLogic clustered environment. From reading notes in this newsgroup and other doc, it appears that WebLogic might not use one instance of the entity bean (based upon unique primary key) in a clustered environment. Is that true (that being multiple users could get their own instance of the entity bean with the same primary key)?
Thanks,
Bryan
Typically, the read-write EJBs are on each WL server instance, so there is
no remote invocation -- it is all done by reference.
Cameron Purdy
Tangosol, Inc.
http://www.tangosol.com
+1.617.623.5782
WebLogic Consulting Available
"Bryan Dixon" <[email protected]> wrote in message
news:[email protected]...
>
> I guess I'm confused about read-write (not read-only) entity beans being
pinned or not. This is from WebLogic 5.1 EJB doc:
> "read-write entity EJBs do not use a clustered EJBObject stub; a client's
method calls to a particular EJB always go to a single WebLogic Server
instance. If the server that a client is using fails, the client must
re-find the entity EJB using the cluster-aware home stub."
>
> Doesn't that mean the entity bean instance for a primary key is pinned to
a single WebLogic Server instance? Maybe I'm just misunderstanding
terminology about what a "particular EJB" is - I was thinking it is an
entity bean instance for a unique primary key.
>
> Thanks,
> Bryan
>
>
> "Cameron Purdy" <[email protected]> wrote:
> >>I was thinking that read-write entity beans were pinned.
> >
> >Not unless you pin them. Basically, that means that the JAR/XML that
> >contains/specifies the EJB only is on one server.
> >
> >> So if two separate weblogic instances in a cluster did a find on an
entity
> >ejb with the same primary key and then performed some business method on
> >that entity ejb, would there really be two separate bean instances in
each
> >weblogic instance for the same primary key?
> >
> >If it is not pinned, yes.
> >
> >--
> >Cameron Purdy
> >Tangosol, Inc.
> >http://www.tangosol.com
> >+1.617.623.5782
> >WebLogic Consulting Available
> >
> >
> >"Bryan Dixon" <[email protected]> wrote in message
> >news:[email protected]...
> >>
> >> Toa, thanks again.
> >>
> >> There are a couple of things I'm not clear about though. One is that I
> >want one instance of an entity bean per primary key, not a singleton of
the
> >entity bean itself. How would JNDI in a clustered environment help me
> >there?
> >>
> >> The other question I have is about having multiple instances of an
entity
> >bean for the same primary key in the cluster. I was thinking that
> >read-write entity beans were pinned. So if two separate weblogic
instances
> >in a cluster did a find on an entity ejb with the same primary key and
then
> >performed some business method on that entity ejb, would there really be
two
> >separate bean instances in each weblogic instance for the same primary
key?
> >>
> >> Thanks again,
> >> Bryan
> >>
> >> "Tao Zhang" <[email protected]> wrote:
> >> >
> >> >"Bryan Dixon" <[email protected]> wrote:
> >> >>
> >> >>The reason I was wanting one instance per primary key is that I want
to
> >use this entity bean to cache some data from database tables. This data
> >doesn't change frequently, so we were wanting to get it from this entity
> >bean's memory instead of constantly hitting the database. This data is
> >global to all users, so we don't want to store it in stateful session
beans.
> >> >>
> >> >>After reading more about the read-only cache-strategy it doesn't
appear
> >that any sycnhronization will occur if the entity bean for a given
primary
> >key is updated (state data is updated) in one weblogic instance, that
change
> >will not get synced up with other weblogic instances for that same
primary
> >key. Is that correct?
> >> >>
> >> >It's correct. If you do want to have exact one copy in the cluster.
You
> >can read Using JNDI in cluster environment.
> >> >
> >> >>If I deploy this entity bean with read-write cache-strategy the
WebLogic
> >doc reads as if I will get one instance per primary key that is pinned to
> >one WebLogic instance and I won't get any fail-over or load-balancing on
the
> >ejbObject (the entity bean instance). Did I read this correctly? If
that
> >is the case, what is the advantage of setting up read-write entity beans
to
> >be clusterable - just the Home objects? I definitely could be
> >misunderstanding something in the doc since I'm very new to clustering.
> >> "Tao
> >> >Zhang"
> >> ><[email protected]> wrote:
> >> >>>
> >> >
> >> >It's not only instance in the cluster. Probably many instances.
> >> >
> >> >If you use 2 tier clustering, failover will not happen because of
> >co-location. But if you use 3 tier cluster, you can write the special
code
> >in the client side to do failover and load-balance.
> >> >
> >> >In a 2 tier cluster, actually the ejb load balancing and failover is
> >almost useless.
> >> >
> >> >But in 3 tier, you can use it.
> >> >
> >> >Hope this help.
> >> >
> >> >
> >> >
> >> >>>"Bryan Dixon" <[email protected]> wrote:
> >> >>>>
> >> >>>>Thanks Tao.
> >> >>>>
> >> >>>>A couple more questions...
> >> >>>>I was planning deploying this entity bean with the read-only
> >cache-strategy which means our transaction attribute would be
> >TXN_NOT_SUPPORTED. Also, our db isolation is TRANSACTION_READ_COMMITTED.
> >> >>>>
> >> >>>>Based upon how I was planning on deploying this entity bean, would
> >WebLogic create an instance of the bean for each primary key in each
> >cluster? I'm just trying to figure out how many duplicate bean instances
> >for the primary key I could have across all clusters. I was really just
> >wanting one instance that is shared among all clients and was hoping that
> >the clustering would provide me with fail-over if that one cluster went
> >down.
> >> >>>>
> >> >>>If you use 3 tier cluster structure, it's impossible to know how
many
> >instances of ejb with the same primary key. Probably one instance for
each
> >wls instance.
> >> >>>In wls5.1, it's impossible to host only read only entity bean
instance
> >in the 3-tier cluster. Because read only entity bean are clusterable in
both
> >home and remote interface.
> >> >>>
> >> >>>>Regarding making the bean a pinned service, which it sounds like I
> >might have to do to get the results I want, how do I do that? Is that a
> >deployment descriptor setting? Also, if I make it a pinned service, do I
> >get any fail-over suport by clustering the bean?
> >> >>>>
> >> >>>For the pinned service, you can just deployed on one or several
server
> >instances. The per-server properties file is a good place to put the
> >weblogic.ejb.deploy property. If only one pinned service in the cluster,
you
> >can't get fail over. If the that server instance fails, the home stub
will
> >be removed from the jndi in other server instances.
> >> >>>
> >> >>>Why do you must need only one instance in the cluster? Do you want
> >exact-only-copy? You can read Using JNDI doc about its in cluster
> >environment.
> >> >>>
> >> >>>
> >> >>>
> >> >>>
> >> >>>>Thanks again,
> >> >>>>Bryan
> >> >>>>
> >> >>>>
> >> >>>>
> >> >>>>"Tao Zhang" <[email protected]> wrote:
> >> >>>>>
> >> >>>>>
> >> >>>>>Bryan Dixon <[email protected]> wrote in message
> >> >>>>>news:[email protected]...
> >> >>>>>>
> >> >>>>>> I'm designing a data caching approach that relies on using
> >read-only
> >> >>>>>entity ejbs with bean-managed persistence. My design is based on
the
> >fact
> >> >>>>>that WebLogic blocks on entity bean access by concurrent users for
a
> >given
> >> >>>>>bean instance (unique primary key). I would like to keep only one
> >entity
> >> >>>>>bean instance active(timeoutSetting=0) for eacy primary key for
all
> >users to
> >> >>>>>share. That way I only have to hit the database one time to
> >initially
> >> >>>>>populate data in the entity bean. I'm worried about this approach
in
> >a
> >> >>>>>WebLogic clustered environment. From reading notes in this
newsgroup
> >and
> >> >>>>>other doc, it appears that WebLogic might not use one instance of
the
> >entity
> >> >>>>>bean (based upon unique primary key) in a clustered environment.
Is
> >that
> >> >>>>>true (that being multiple users could get their own instance of
the
> >entity
> >> >>>>>bean with the same primary key)?
> >> >>>>>>
> >> >>>>>
> >> >>>>>
> >> >>>>>It's true. In a cluster environment, each wls instance can have
their
> >ejb
> >> >>>>>instance. The block of concurrent access to the ejb data is up to
> >your
> >> >>>>>transaction attribute and isolation level and your database.
> >> >>>>>
> >> >>>>>If you only want to keep one instance active, you can make the
> >read-only
> >> >>>>>entity bean a pinned service, to be deployed in one instance. But
the
> >> >>>>>network overhead is worse.
> >> >>>>>
> >> >>>>>
> >> >>>>>> Thanks,
> >> >>>>>> Bryan
> >> >>>>>
> >> >>>>>
> >> >>>>
> >> >>>
> >> >>
> >> >
> >>
> >
> >
>
Maybe you are looking for
-
Information about fwdservice dot com?
Note that urls in this post are deliberately obfuscated. Earlier today I tried to access www <dot> casponline <dot> org which is supposed to be the site of the California Association of School Psychologists. When I had trouble viewing content, I enab
-
HT4914 Can I put all my songs I've downloaded into my iTunes from CDs onto iTunes Match?
I am thinking about using the iTunes Match but I don't understand if I can upload all of my music from my of to the iTunes Match. I inadvertently have deleted all of my music trying to transfer from my iPhone 4 to my iPad 2 so after reloading all of
-
Download CC 2014 Applications Without Using Creative Cloud?
I have the new Creative Cloud and associated apps (2014) installed on my MacPro at work, but I want to install the new associated apps on my iMac at home. I asked for a link to download the previous versions files to an external hard drive recently (
-
Reject flag doesn't show only rejects
I have a folder that contains 172 photos and I have flagged several X'ed. (rejects). As I understand the process one clicks on the X filter the screen flashes No Filter, click on it again and this time, and it says Flagged and Unflagged photos. In ei
-
Setting/Clearing Dynamic Radio Button values
Hi, i have the following Radio buttons defined within an iteration <c:forEach items="${searchresults}" var="post" varStatus="status"> <tr class = "text_results"> <c:url value="/searchposts.do" v