'pool' to 'ready' state of entity bean
Entity bean's life cycle is show at http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/EJBConcepts9.html#63498 Can entity bean go from �pooled� state to �ready� state by methods other than create (e.g. a find method)?
How many questions are you going to ask at once?
Most of these have been answered countless times, both here and on the web. Why don't you try searching instead of spewing endless questions?
Similar Messages
-
EJB and ADF- Checking State of Entity Bean before Commit
Hi All,
I have created a sample using Ejb as business service and then created 2 forms in page and i am calling only one merge action for 2 forms.
I need to validate whether the data is modified or not....in business service layer...
So my doubt is how to check the State whether it is modified or not... or how can i use EntityFacadeImpl class..Any link or suggestions??
I am using Jdev 11.1.1.5
Regards
KarthickHi,
+.. or how can i use EntityFacadeImpl class+
expose a method onthe facade (e.g. checkDirtyState) that accesses this class for the transaction state and that returns true or false. This then is exposed by the DataControl and you create a method binding in teh pages PageDef for it. You can then access it as
BindingContainer bindings = ... get access to the binding layer ...
OperationBinding checkDirtyDataState = (OperationBinding) bindings.get("Name of Method Binding");
Object outcome = checkDirtyDataState.execute();
if(outcome != null){
if ((Boolean)outcome == Boolean.TRUE){
//do this
else{
//do that
}A Second option is to add a transient field to the entities that indicates client side changes. You then iterate over the DCIteratorBinding reference checking if any entity in it has been changed (identified by the dirty flag)
Frank -
Multiple Database Pooling using Entity Bean
Hi,
Can anyone come across this problem? I have an entity bean (BMP). I want to connect to multiple databases(Oracle, My-SQL, MS-SQL Server). The application is like this. if a request come from the client i have to identify the client request and connect to the database. How to do this. How to connect to get the pool from the connection pooling. Please reply its urgent.
thanks
PremThanks for ur reply.
what the point is i want to identify the client request and send this request to that bean. i have developed 30 cmp beans, if i have to identify i have to change all cmp to bmp, is there any solution to this. -
Hi,
How is pooling of entity beans supported in Weblogic? If a value is provided for
max_beans_in_free_pool, then the Weblogic server creates a particular number of
entity bean instances in the pool? What's the role of max-beans-in-cache?
Regards,
IndhuThanks Seth for your info
Indhu
Seth White <[email protected]> wrote:
>
The docs are incorrect. You may configure a pool for your entity beans.
Seth
indhu wrote:
Hi Ryan,
Thanks for your reply.
In the entity-descriptor element of weblogic-ejb-jar.xml, pool elementis there,
which consists of max-beans-in-free-pool and initial-beans-in-free-pool.The document
says that the pool element configures the behavior of the WebLogicServer free
pool for stateless session and message driven EJBs.It means that wecan't use
those elements to set free pool for entity beans?
Regards,
Indhu
"Ryan LeCompte" <[email protected]> wrote:
Hello Indhu,
Refer to the following links for answers to your questions:
http://edocs.bea.com/wls/docs70/ejb/EJB_environment.html#1135029
http://edocs.bea.com/wls/docs70/ejb/reference.html#1071069
http://edocs.bea.com/wls/docs70/ejb/reference.html#1071125
Best regards,
Ryan LeCompte
[email protected]
http://www.louisiana.edu/~rml7669
"indhu" <[email protected]> wrote:
Hi,
How is pooling of entity beans supported in Weblogic? If a value
is
provided
for
max_beans_in_free_pool, then the Weblogic server creates a particular
number of
entity bean instances in the pool? What's the role of max-beans-in-cache?
Regards,
Indhu -
Weblogic(6.1) deployment descriptor allows configuration of entity bean pool size
and cache size. Since calls from multiple clients to the same entity bean are
serialized what is the benefit of having multiple instances in an entity bean
pool?
Thanks,
StefanAnand,
Of course I don't talk about an extreme case of a table with one row!?, but the
same (logical) entity bean with same primary key accessed by multiple clients.
Each client will use findByPrimaryKey method and will get a reference to same
entity bean mapped to the same "row" in database . My surprise was that even for
this case there are multiple entity instances created in the pool for one row
in the database. For multiple instances mapped to multiple rows we concluded all
makes sense.
thanks again,
Stefan
"Anand Byrappagari" <[email protected]> wrote:
Stefan,
I am not sure I understand your question but if you are asking why
have
pooling, pool of instances is a feature for all types of entity beans.
In
the specific case that you have where the table has only one row it has
limited application but the general case is that you lave multiple rows
in a
table. For example, an Address table will in all probability have hundereds
of addresses of customers. An application accessing this table will be
accessing multiple address instances at any given time. So each of this
instances should be accessable independently hence the pool makes sense
in
this case. I point I am trying to make is that when you define a pool
for a
bean (AddressBean) you are not defining the pool for one instance of
the
bean type(like address_1). The pool specifies the number of instances
(address_1, address_2, ...., address_n) that can exist at any given time.
Are you asking if the pool size is for each row? That is if pool
size is
set to 10, are you asking if you can have atmost 10 instances of address_1
as opposed to 10 instances of any address? The pool and cache sizes refer
to
the limit on any instances and not on 1 instance.
Even in the extreme case like the one you mention where the table
has
only one row, there is some utility in having multiple instances as this
would not require serializing access to the bean - in exclusive strategy,
once a client has locked an EJB instance, other clients are blocked from
the
EJB's data even if they intend only to read the persistent fields. If
you
set the strategy to database then multiple instances can access the data
depending on the isolation levels you have set. Read Chapter 4 of
"Programming Weblogic Enterprise JavaBeans" for more information.
Hope this helps.
-- Anand
"Stefan" <[email protected]> wrote in message
news:[email protected]...
Anand,
If we established that same databse row can be mapped to multiple entitybeans
instances we are back to my original question: Assuming "database"concurrency
strategy, how do you see this model useful if calls from multiple clientsare
serialized across all these instances? I cannot point out the benefitof
the pool
of entity bean instances for same row since they all wait for a clientcall to
finish before replying to another client. Where is the benefit of havingmultiple
instances if one instance would do the same job?
thanks,
Stefan
"Anand Byrappagari" <[email protected]> wrote:
The default concurrency-strategy in weblogic 6.1 is database which
means
that concurrency is taken care of at the database, this model allows
you to
have multiple ejb object instances for the same row in the database.
If you
want a single instance then you can set <concurrency-strategy> element
in
the deployment descriptor for the ejb to Exclusive.
-- Anand
"Stefan" <[email protected]> wrote in message
news:[email protected]...
Thanks Anand,
Sure this way it makes total sense. However I used an example whereI was
referencing
only one row from multiple clients. For this case using the WeblogicConsole I
saw the number of bean instances growing. This would indicate thatsame
row is
mapped to multiple bean instances in the pool, which prompted my
question.
Stefan
"Anand Byrappagari" <[email protected]> wrote:
Think of entity beans as mapping to a row in a database. Access
to
a
single
row is synchronized not to all the rows. So it still makes sense
to
have
multiple instances possibly mapping to multiple rows in the database.
-- Anand
"stefan" <[email protected]> wrote in message
news:[email protected]...
Weblogic(6.1) deployment descriptor allows configuration of entitybean
pool size
and cache size. Since calls from multiple clients to the same
entity
bean
are
serialized what is the benefit of having multiple instances in
an
entity
bean
pool?
Thanks,
Stefan -
Questions about entity bean caching/pooling
We have a large J2ee app running on weblogic6.1 sp4. We are using entity beans
with cmp/cmr. We have about 200 EntityBeans and accessed quite heavily. We are
struggling with what is the right setting of max-beans-in-cache and idle-time-out.
The current max heap setting is 2GB. With the current setting (default setting
of max-beans-in-cache to 1000, with a few exceptions to take care of cachefullexceptions)
we run into extended gc happening after about 4 hours. The memory freed gradually
reduces with time and lurks around the 30% mark after about 4 hours of run at
the expected load. In relation to this we had the following questions
1. What does caching mean?
a. If a bean with primary key 100 exists in the cache, and the following
is done what is expected
i. findByPrimaryKey(100)
ii. findBySomeOtherKey(xyz)
which results in loading up bean with primary key 100
iii. cmr access to bean with
primary key 100
Is the instance in the cache reused at all between transactions?
If there is minimal reuse of the beans in cache, Is it fair to assume that caching
can only help loading of beans within a transaction. If this is the case, is there
any driver to increase the max-beans-in-cache other than to avoid CacheFullException?
In other words, is it wrong to say that max-beans-in-cache should be set to the
minimum value so as to avoid CacheFullExceptions.
2. Again what is the driver of setting idle-time-out to a value? ( We currently
have it at 30 secs) Partly the answer to this question would again go back to
what amount of reuse is done from cache? Is it right to say that it should be
set to a very low value? (Why is the default 10 min?)
3. Can you provide us any documentation that explains how all this works
in more detail, particularly in relevance to entity beans. We have already read
the documentation from weblogic as is. Anything to give more explicit detail?
Any tools that can be of use.
4. What is the right parameter (from among the things that weblogic console
throws up) to look at for optimizing?
Thanks in advance for your help
Cheers
ArunThe behaviour changes according to these descriptor settings: concurrency-strategy,
db-is-shared and include-updates.
1. If concurrency-strategy is Database, then the database is used to provide locking
and db-is-shared is ignored. A bean's ejbLoad() is called once per transaction,
and the 'cache' is really a per-transaction pool. A findByPrimaryKey() always
initially hits the db, but can use the cache if called again in the same txn (although
you'd simply just pass a reference around). A findByAnythingElse() always hits
the db.
2. If concurrency-strategy is ReadOnly then the cache is longer-term: ejbLoad()
is only called when the bean is activated; thereafter, the number of times ejbLoad()
is called is influenced by the setting of read-timeout-seconds. A findByPrimaryKey()
can use the cache. A findByAnythingElse() can't.
3. If concurrency-strategy is Exclusive then db-is-shared influences how many
times ejbLoad() is called. If db-is-shared is false (i.e. the container has exclusive
use of the underlying table), then the ejbLoad() behaviour is more like ReadOnly
(2. above), and the cache is longer-term. If db-is-shared is true, then the ejbLoad()
behaviour is like Database (1. above).
Exclusive concurrency reduces ejbLoads(), increases the effectiveness of the cache,
but can reduce app concurrency as only one instance of an entity bean can exist
inside the server, and access to it is serialised at the txn level.
You can't use db-is-shared = false in a cluster. So Exclusive mode is less useful.
That's when you think long and hard about Tangosol Coherence (http://www.tangosol.com)
4. If include-updates is true, then the cache is flushed to the db before every
non-findByPrimaryKey() finder call so the finder (which always hits the db) will
get the latest bean values. This overrides a true setting of delay-updates-until-end-of-tx.
The max-beans-in-cache setting refers to the maximum number of active beans (really
beans that have been returned by a finder in a txn that hasn't committed). This
wasn't checked in SP2 (we have an app that accidently loads 30,000 beans in a
txn with a max-beans-in-cache of 3,000. Slow, but it works, showing 3,000 active
beans, and 27,000 passivated ones...).
This setting is checked in SP5, but I don't know about SP4. So you do need to
size appropriately.
In summary:
- The cache isn't nearly as useful as you'd like. You get far more db activity
with entity beans than you'd like (too many ejbLoads()). This is disappointing.
- findByPrimaryKey() finders can use the cache. How long the cache is kept around
depends on concurrency-strategy.
- findByAnythingElse() finders always hit the db.
WebLogic 8 tidies all this up a bit with a cache-between-transactions setting
and optimistic locking. But I believe findByAnythingElse() finders still have
to hit the db - ejbql is never run against the cache, but is always converted
to SQL and run against the db.
Hope this is of some help - feel free to email me at simon-dot-spruzen-at-rbos-dot-com
(you get the idea!)
simon. -
Where to see the SQL statement that CMP Entity bean excuted?
hi, I'm wondering where I can find the SQL that a CMP entity bean executed in a transaction?
thank you!You can do it in many ways. If you are using eclipse then using eclipse
plugins for weblogic you van do it. I have heard that in weblogic workshop
also you can do it. If the above do doesn;t solves your problem then check
this out.
http://www.p6spy.com/documentation/install.htm
Hope that helps.
<Xin Zhuang> wrote in message news:[email protected]..
hi, I'm wondering where I can find the SQL that a CMP entity bean executed
in a transaction?
thank you! -
Report with entity beans - BIG performance problem
I have several EJBs (CMP entity beans).
I need to build a report using linked EJBs and show this report
to a user (so, updates are not needed - report is only for web page demonstration).
the problem is: such report is generated too slow.
I have ~100 records in table 'TestResult' and ~500 records in table 'TestObject'.
these tables are linked like this:
one testobject <--> many testresults
for each testresult I need to show a line with some info which should be retrieved
from bound EJBs (e.g. testresult-testobject-assigneduser-prioritylevel)
how to optimize such report generation?
I have heard something about session beans with Value Objects.
do I need to use such session beans here?
what is a general solution for generating reports using linked EJBs?
I tried to solve the problem by using DB View, but it didn't help.
I have used 'TestResultView' - info is retrieved fast enough from this view
(several msecs), but displaying this info is still very costly.
please, help!
Oracle 8.1.7,
WebLogic 6.1Hi,
because I have checked the time required to
1) retrieve EJBS (several msec)Let me share some of my views with you.Once you retrieve the EJBS ie ie the collection of remote interface from the finder method the container is firing single "select " query and gets all the primary keys back.
2) cycle through it - get fields and display them
(~4000 msec)Now the cycle of getting the value you are getting the bean from the PooledState to ready state which will get the fields by firing the "select" query (ejbload()). Now in the instance you are invoking the multiple methods and at the end it will remain there in ready till you call the remove which u are not doing so the time out will bring it back to the pooledstate.
And if you are calling the bean very frequently then all the instances will go to the ready state and the activation & passivation will start developing ......
So at the end when the bean moves back to the pooled state after timeout the ejbStore() fires the "update " query!!!!
Let us consider the activation/passivation not appearing for simple understanding !!!!!!!!
So for each iteration you are firing 2 queries to the database.So if you have 500 records then the queries generatted will be 1(select from finder)+2(1 by select(ejbload)+1 by update(ejbStore))*500. So the flow is calling 1001 queries ...Thus quering about 1000 queries will definetly take some time...
So what is the solution????
Any way you dont require to fire the update query as you are just viewing the data...So u can stop calling the ejbStore().
Hence you queries will drop to half.Now how we can do this is by using the BMP.....
The other solution is using the Sessionbean and store the data all 500 records in the Object which can be called across the n/w. This object should implements the Serializable interface and this tech is the Transfer Object feature.....
Hope you find this useful..
regards
Vicky -
To use Entity Bean or Oracle stored Package?
Currently, in my project, Weblogic8.1 and Oracle is used, but lots of business logic is implemented using Oracle stored Packages, many of these packages have a package level readonly lookup table(like index-by table or nested table), which is populated with data from database, once the package is called, and is accessed very often in subsequent calls of stored procedures.
Since, in Weblogic server, a connection pool is maintained, and those package level lookup tables would be stored as session data in oracle PGA, I'm afraid this might cause oracle database server to be overloaded.
to fully take advantage of middleware cache service that weblogic provide, should I move those business logic out of oracle and implement them using like read only entity bean?
any help appreciated!Its very hard to say without knowing the usage patterns of the data. It sounds like you have a lot of read-only entities. These could be spread around a WLS cluster, therefore there is more scalability and performance with this option. However, I would not neccessarily rewrite business logic from SP into EJB just for middle-tier caching.
If its a DB intensive app with lots of SQL, then if the calls are within SP's, there is only 1 call from WLS and the DBA ought o be able to tune the DB usin read-ahead and other DBA semantics. If there is locality of reference in the data, again, DB can use read-ahead better than WLS, although RO cache in middle is more scalable than DBMS.
I wouldnt rewrite business logic from SP to EJB/Entity beans to take advantage of cache, especially if there is no locality of read-only reference to data. Oracle could do this better in my opinion, especially if SP's already exist
Need for information on the usage patterns of the data - how is it CRUD'd.
I would use-case the steel threads and put them under test load to see if the SP's really are an issue, since this is an architecture decision. What state is the project at? Live/Dev? Inception? -
Urgent!Poor performance in Entity beans
we're using Weblogic 5.1, Oracle 8i.(both installed in Solaris 5.8) We
found that the performance of our entity beans is poor, the reason we
guess is because when we issue a select statement, the jdbc, at the same
time, issue a update statement, that's why the response time is slow.
(By the way,we use oracle thin driver to connect.)
I know we can set autocommit to false but our beans are cmp,so we can't
set properties in connection pool.What can we do then?Can we set any
transaction attributes in our ejb,so we can solve our problem?
Thx!
PeteA few issues with the linked article:
" 1. Where ever possible, using Entity bean with CMP over Entity bean with BMP, will ensure increase in performance... Tuned CMP entity beans offer better performance than BMP entity beans."
Bull. Every time I have seen some statement like the above it has never contained any associated proof nor explaination of how a container vendor's code can interact with a DB any better than mine.
The only means by which a container vendor can generically improve the performance of DB interactivity is to not do it, namely by caching the data and monitoring modification. This is rarely used due to mitigating factors such as any case where the container does not have sole access and omniscience over the DB.
"Moving towards the CMP based approach provides database independence since it does not contain any database storage APIs within it."
Ahh yes, lets trade in EJB container independence for database independence. It's interesting that the biggest proponents of CMP (and the ones who pushed it into the spec) are the biggest container vendors. Database storage APIs??? Perhaps JDBC and "select * from USER where..." are somehow viewed as database specific. -
Basic question about Entity Bean.
Hi:
Let's suppose that we have the code like below:
home = (ProductHome)javax.rmi.PortableRemoteObject.narrow(ctx.lookup("ProductHome"),
ProductHome.class);
home.create("mouse");
home.create("keyboard");
home.create("monitor");
home.create("mainboard");
Q1: Does the weblogic hold the four instances of Product Bean after run those
code?
Q2: When do the instances will be backed to pool or be destoryed?
Q3: Does the weblogic will ready all beans if client execute home.findByALL().
(findByAll method return all product), that will consume a lot of memory if there
is a mass of client do that?
Regards!
Eric Temel"Michael Jouravlev" <[email protected]> wrote in message
news:[email protected]..
>
"Eric Temel" <[email protected]> wrote in message
news:[email protected]..
Q3: Does the weblogic will ready all beans if client executehome.findByALL().
(findByAll method return all product), that will consume a lot of memoryif there
is a mass of client do that?WL has a setting which allows you to find a bean without loading it.Search
docs.
ah, good point. To be redundant, even though the beans are found and not
loaded (via the finders-load-bean DD setting which I think we're referring
to),
the 'found' but unloaded beans will still take up a some room in the entity
bean cache.
Something to keep in mind if memory is an issue..
-thorick -
Mapping Entity Beans to physical DB schemas
Does any one have any idea whether sun application server(PE) supports mapping an entity bean to a table in a schema in a database, when using CMP
eg
something like insert into schema_name.table_nameThanks ian, what you say is completely true. However if you have a database with multiple schemas and then you use the capture-schema utility to obtain a perticular schema(For example say abc). Then you deploy the entity beans on the application server. The entity beans use a connection pool which logs in as 'system' to the database.
In this case since i use a captured schema the application server does not create the tables.Since the application server does not reffer to scehma 'abc' on it's insert statement the sql fails (we are logged in as system, so the default schema is system). It is possible to create and use a user 'abc' for schema 'abc', bu this means creating seperate database users for each schema and creating sepperate connection pools for each schema.
Is there any way we can indicate to the application server during deployement to use a specific table from a specific schema(Physical DB schema). I can specify to use a table from captured schema, but in order for this to work the application server needs to be logged on to the database as that schema's defualt user.
-Kusan Atukorala -
Help! My database connection from BMP Entity bean dies after a while!!!
Hi all!
I posted a related post about this lately How do I use connection pooling from BMP Entity Beans in OC4J 10.1.2? but it didn't solve my problems.
I have some entity beans coded with BMP, so I handle all database stuff myself. I have set up datasources.xml like this:
<data-source
class="com.evermind.sql.DriverManagerDataSource"
name="OracleDS"
location="jdbc/OracleCoreDS"
xa-location="jdbc/xa/OracleXADS"
ejb-location="jdbc/OracleDS"
connection-driver="oracle.jdbc.driver.OracleDriver"
username="scott"
password="tiger"
url="jdbc:oracle:thin:@//URL TO DB:SID"
inactivity-timeout="30"
min-connections="10"
max-connections="50"
/>All JNDI connection lookup is done through the ejb-location as I should. I have been through all my try {} catch {} finally {} blocks, so ensure that I close all objects after use.
After a few hours of inactivity, my program dies. I have inserted a lot of debug statements (System.out.println()), and it seems like the program hangs when it's trying to execute a PreparedStatement.
I.e. it dies when I do ps.ExecuteQuery in the code below (NOTE: to make things easier to read, I have stripped out all error handling here):
Context ic = new InitialContext();
DataSource ds = (DataSource)ic.lookup("jdbc/OracleDS");
c = ds.getConnection();
System.out.println("DEBUG: Got database connection.");
PreparedStatement ps = c.prepareStatement("SELECT foobar FROM footable WHERE foo=?");
System.out.println("DEBUG: Prepared SQL statement.");
ps.setString(1,"foo");
ResultSet rs = ps.executeQuery();
// Close all objects (rs, ps, c) here.My database is on another physical server, so I wonder if this is caused by an unstable network, or?
Please help!
~MortenHi again!
Sorry for the delay, but I have been busy lately.
Anyway: Our application server is 10.1.2, so I don't think patch 4307303 is relevant here. Database server is Oracle 9.2.0.6. Everything runs on Linux (of course) ;-).
Here's a thread dump:
Full thread dump Java HotSpot(TM) Server VM (1.4.2_04-b05 mixed mode):
"ApplicationServerThread-8" prio=1 tid=0x089a9448 nid=0x5902 in Object.wait() [885e6000..885e687c]
at java.lang.Object.wait(Native Method)
at EDU.oswego.cs.dl.util.concurrent.SynchronousChannel.poll(SynchronousChannel.java:353)
- locked <0x91a31e60> (a EDU.oswego.cs.dl.util.concurrent.LinkedNode)
at EDU.oswego.cs.dl.util.concurrent.PooledExecutor.getTask(PooledExecutor.java:767)
at com.evermind.util.ReleasableResourcePooledExecutor.myGetTask(ReleasableResourcePooledExecutor.java:151)
at com.evermind.util.ReleasableResourcePooledExecutor.access$000(ReleasableResourcePooledExecutor.java:33)
at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:190)
at java.lang.Thread.run(Thread.java:534)
"AJPRequestHandler-ApplicationServerThread-7" prio=1 tid=0x08d78a58 nid=0x5902 runnable [8b2f4000..8b2f587c]
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at oracle.net.ns.Packet.receive(Unknown Source)
at oracle.net.ns.DataPacket.receive(Unknown Source)
at oracle.net.ns.NetInputStream.getNextPacket(Unknown Source)
at oracle.net.ns.NetInputStream.read(Unknown Source)
at oracle.net.ns.NetInputStream.read(Unknown Source)
at oracle.net.ns.NetInputStream.read(Unknown Source)
at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:978)
at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:950)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:434)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:181)
at oracle.jdbc.driver.T4CPreparedStatement.execute_for_describe(T4CPreparedStatement.java:661)
at oracle.jdbc.driver.OracleStatement.execute_maybe_describe(OracleStatement.java:959)
at oracle.jdbc.driver.T4CPreparedStatement.execute_maybe_describe(T4CPreparedStatement.java:693)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1065)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:2901)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:2942)
- locked <0x914cad08> (a oracle.jdbc.driver.T4CPreparedStatement)
- locked <0x920256c0> (a oracle.jdbc.driver.T4CConnection)
at com.evermind.sql.FilterPreparedStatement.executeQuery(FilterPreparedStatement.java:270)
at com.evermind.sql.FilterPreparedStatement.executeQuery(FilterPreparedStatement.java:270)
at com.evermind.sql.PreparedStatementBCELProxy.executeQuery(PreparedStatementBCELProxy.java:31)
at com.brunata.servicerapport.ejb.CustomerBean.ejbCreate(Unknown Source)
at CustomerLocalHome_EntityHomeWrapper2.create(CustomerLocalHome_EntityHomeWrapper2.java:420)
at com.brunata.servicerapport.BeanFactory.getCustomerBean(Unknown Source)
at com.brunata.servicerapport.CustomerOpenAction.execute(Unknown Source)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
at com.brunata.servicerapport.CustomerAuthorizationFilter.doFilter(Unknown Source)
at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:649)
at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:322)
at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:790)
at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:208)
at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:125)
at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192)
at java.lang.Thread.run(Thread.java:534)
"Thread-23" daemon prio=1 tid=0x092ebb18 nid=0x5902 in Object.wait() [88565000..8856587c]
at java.lang.Object.wait(Native Method)
- waiting on <0x920000f0> (a java.util.TaskQueue)
at java.util.TimerThread.mainLoop(Timer.java:429)
- locked <0x920000f0> (a java.util.TaskQueue)
at java.util.TimerThread.run(Timer.java:382)
"Thread-22" daemon prio=1 tid=0x092eb988 nid=0x5902 in Object.wait() [8dfa0000..8dfa087c]
at java.lang.Object.wait(Native Method)
- waiting on <0x92000188> (a java.util.TaskQueue)
at java.util.TimerThread.mainLoop(Timer.java:429)
- locked <0x92000188> (a java.util.TaskQueue)
at java.util.TimerThread.run(Timer.java:382)
"AJPRequestHandler-ApplicationServerThread-6" prio=1 tid=0x08c03240 nid=0x5902 runnable [8b0f1000..8b0f187c]
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at com.evermind.io.SingleReadBufferInputStream.readChunk(SingleReadBufferInputStream.java:116)
at com.evermind.io.SingleReadBufferInputStream.read(SingleReadBufferInputStream.java:35)
at com.evermind.server.http.AJPRequestHandler.readAJPPackets(AJPRequestHandler.java:462)
at com.evermind.server.http.AJPRequestHandler.initRequest(AJPRequestHandler.java:396)
at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:185)
at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:125)
at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192)
at java.lang.Thread.run(Thread.java:534)
"DestroyJavaVM" prio=1 tid=0x08053278 nid=0x5902 waiting on condition [0..bfffcac4]
"OC4JMonitorThread" daemon prio=1 tid=0x08d7a5a0 nid=0x5902 in Object.wait() [88667000..8866787c]
at java.lang.Object.wait(Native Method)
- waiting on <0x92aed1f8> (a java.lang.Object)
at oracle.ons.NotificationQueue.internalDequeue(NotificationQueue.java:253)
- locked <0x92aed1f8> (a java.lang.Object)
at oracle.ons.NotificationQueue.dequeue(NotificationQueue.java:226)
at oracle.ons.Subscriber.receive(Subscriber.java:136)
at com.evermind.server.OC4JMonitorThread.run(OC4JMonitorThread.java:315)
at java.lang.Thread.run(Thread.java:534)
"Thread-6" daemon prio=1 tid=0x087f9f98 nid=0x5902 in Object.wait() [886e8000..886e887c]
at java.lang.Object.wait(Native Method)
- waiting on <0x92aed368> (a java.lang.Object)
at java.lang.Object.wait(Object.java:429)
at oracle.ons.NotificationQueue.internalDequeue(NotificationQueue.java:255)
- locked <0x92aed368> (a java.lang.Object)
at oracle.ons.NotificationQueue.dequeue(NotificationQueue.java:215)
at oracle.ons.SenderThread.run(SenderThread.java:81)
"Thread-5" daemon prio=1 tid=0x087f9d10 nid=0x5902 runnable [88769000..8876987c]
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at oracle.ons.InputBuffer.readMoreData(InputBuffer.java:267)
at oracle.ons.InputBuffer.getNextString(InputBuffer.java:222)
at oracle.ons.ReceiverThread.run(ReceiverThread.java:228)
"TaskManager" prio=1 tid=0x087f9b30 nid=0x5902 waiting on condition [887ea000..887ea87c]
at java.lang.Thread.sleep(Native Method)
at com.evermind.util.TaskManager.run(TaskManager.java:247)
at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:186)
at java.lang.Thread.run(Thread.java:534)
"Thread-4" prio=1 tid=0x08ca2fb8 nid=0x5902 in Object.wait() [891e2000..891e287c]
at java.lang.Object.wait(Native Method)
- waiting on <0x92aee258> (a java.util.TaskQueue)
at java.util.TimerThread.mainLoop(Timer.java:429)
- locked <0x92aee258> (a java.util.TaskQueue)
at java.util.TimerThread.run(Timer.java:382)
"AJPConnectionListener [0.0.0.0/0.0.0.0:3302]" prio=1 tid=0x086f1668 nid=0x5902 runnable [8a7ca000..8a7ca87c]
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:353)
- locked <0x927a0390> (a java.net.PlainSocketImpl)
at java.net.ServerSocket.implAccept(ServerSocket.java:448)
at java.net.ServerSocket.accept(ServerSocket.java:419)
at com.evermind.server.http.AJPConnectionListener.run(AJPConnectionListener.java:60)
at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:186)
at java.lang.Thread.run(Thread.java:534)
"RMIServer [0.0.0.0:3202] count:2" prio=1 tid=0x086cbff0 nid=0x5902 runnable [8b172000..8b17287c]
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:353)
- locked <0x927a0850> (a java.net.PlainSocketImpl)
at java.net.ServerSocket.implAccept(ServerSocket.java:448)
at java.net.ServerSocket.accept(ServerSocket.java:419)
at com.evermind.server.rmi.RMIServer.run(RMIServer.java:464)
at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:186)
at java.lang.Thread.run(Thread.java:534)
"JMSServer[webprod:3702]" prio=1 tid=0x0879aff0 nid=0x5902 runnable [8b1f3000..8b1f387c]
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:353)
- locked <0x92746aa0> (a java.net.PlainSocketImpl)
at java.net.ServerSocket.implAccept(ServerSocket.java:448)
at java.net.ServerSocket.accept(ServerSocket.java:419)
at com.evermind.server.jms.JMSServer.run(JMSServer.java:516)
at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:186)
at java.lang.Thread.run(Thread.java:534)
"LogFlusher" daemon prio=1 tid=0x081b91a0 nid=0x5902 waiting on condition [8b274000..8b27487c]
at java.lang.Thread.sleep(Native Method)
at oracle.core.ojdl.BufferedLogWriter$Flusher.run(BufferedLogWriter.java:354)
"Signal Dispatcher" daemon prio=1 tid=0x080ba9e0 nid=0x5902 waiting on condition [0..0]
"Finalizer" daemon prio=1 tid=0x080b61a8 nid=0x5902 in Object.wait() [8e9a7000..8e9a787c]
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
- locked <0x925b0378> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
"Reference Handler" daemon prio=1 tid=0x080b5dc8 nid=0x5902 in Object.wait() [8ea28000..8ea2887c]
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:429)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:115)
- locked <0x925b02a0> (a java.lang.ref.Reference$Lock)
"VM Thread" prio=1 tid=0x080b52e0 nid=0x5902 runnable
"VM Periodic Task Thread" prio=1 tid=0x080bee08 nid=0x5902 waiting on condition
"Suspend Checker Thread" prio=1 tid=0x080b9fc8 nid=0x5902 runnable As far as I can see, my PreparedStatement (or connection) is locked.... Any ideas?
~Morten ;-) -
Hello,
I am performing some tests concerning the benefit of caching data with Entity Bean.
Here is the case :
I have an Entity Bean with a business method getName() to retrieve a name field in the EJB.
I understand that in order to cach data, I have to set the NOT_SUPPORTED transaction attr for this method. In this way, when this method is called, the ejbReload() is not called and the data is retreived from the EJB ready instance (and not from the database).
Is it true and is it the good way to use the cach mechanism ?
Now if we consider that this instance is the only one in the ready stage, and it is never pooled (it seems so !), what about a modification of the database from a tier (or from an other EB instance)? The Entity Bean is not able to see this modification seence it does not call the ejbLoad method.
Is there a way to force an Entity Bean to be periodically polled in order to recover data from the data store when activated ?
Thanks in advance,
ThierryNo, This is wrong way of doing what you want. Most of the application servers provide various configuration settings for this. Eg. caching mechanism, interval on when to call ejbLoad and ejbStore, read only beans. You have to check the documentation for this.
--Ashwani -
JDBC issue when accessing an Entity Bean
Hi,
WLCS 3.1
WLS 5.1 sp6
Windows NT
Oracle 8.1.6
I am having problems with an Entity bean, I have originaly deployed and had it
running on cloudscape. I decided I need to deploy it to Oracle 8.1.6, on startup
of WLCS the bean was deployed to the connection pool correctly using Weblogic
JDriver.
The bit I cannot understand is when I try and do a FindByPrimaryKey on the Entity
Bean the following exception is thrown by oracle, which leads me to believe this
must be an Oracle/Jdbc problem.
Here you can see that the bean has been deployed on a valid connection pool.
Tue Sep 18 15:47:39 GMT+03:00 2001:<I> <EJB JAR deployment /export/home/mccann/tester2.jar>
EJB home interface: 'com.testerHome' deployed bound to the JNDI name
: 'tester'
Heres the exception raised when a findByPrimaryKey is invoked on the bean....
Tue Sep 18 15:47:57 GMT+03:00 2001:<I> <EJB JAR deployment /export/home/mccann/t
ester2.jar> Exception in non-transactional EJB invoke:
java.sql.SQLException: ORA-00942: table or view does not exist
at weblogic.db.oci.OciCursor.getCDAException(OciCursor.java:228)
at weblogic.jdbcbase.oci.Statement.executeUpdate(Statement.java:869)
at weblogic.jdbc.pool.PreparedStatement.executeUpdate(PreparedStatement.
java:65)
at com.testerEJBPSWebLogic_CMP_RDBMS.create(testerEJBPSWebLogic_CMP_RDBM
S.java:199)
at com.testerEJBPSWebLogic_CMP_RDBMS.create(testerEJBPSWebLogic_CMP_RDBM
S.java:162)
at weblogic.ejb.internal.EntityEJBContext.create(EntityEJBContext.java:1
18)
at weblogic.ejb.internal.StatefulEJBObject.postCreate(StatefulEJBObject.
java:268)
at com.testerEJBEOImpl.create(testerEJBEOImpl.java:61)
at com.testerEJBHomeImpl.create(testerEJBHomeImpl.java:32)
at com.testerEJBHomeImpl_WLSkel.invoke(testerEJBHomeImpl_WLSkel.java:68)
at weblogic.rmi.extensions.BasicServerObjectAdapter.invoke(BasicServerOb
jectAdapter.java:347)
at weblogic.rmi.extensions.BasicRequestHandler.handleRequest(BasicReques
tHandler.java:69)
at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
.java:15)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:135)
Any help here would be great, this is annoying problem because the Entity bean
deploys fine and no issues are raised at startup time, so the table must of existed
and the structure must of been correct. But minutes after the server started I
ran my client which tried to invoke this bean with the above exception.
Thanks
Wayne.Hi Wayne,
I'd recommend you installing of latest SP for WL plus installing of Oracle
8.1.7 thing driver.
Regards,
Slava Imeshev
"Wayne Highland" <[email protected]> wrote in message
news:[email protected]...
>
Hi,
WLCS 3.1
WLS 5.1 sp6
Windows NT
Oracle 8.1.6
I am having problems with an Entity bean, I have originaly deployed andhad it
running on cloudscape. I decided I need to deploy it to Oracle 8.1.6, onstartup
of WLCS the bean was deployed to the connection pool correctly usingWeblogic
JDriver.
The bit I cannot understand is when I try and do a FindByPrimaryKey on theEntity
Bean the following exception is thrown by oracle, which leads me tobelieve this
must be an Oracle/Jdbc problem.
Here you can see that the bean has been deployed on a valid connectionpool.
>
Tue Sep 18 15:47:39 GMT+03:00 2001:<I> <EJB JAR deployment/export/home/mccann/tester2.jar>
EJB home interface: 'com.testerHome' deployed bound to the JNDI name
: 'tester'
Heres the exception raised when a findByPrimaryKey is invoked on thebean....
>
Tue Sep 18 15:47:57 GMT+03:00 2001:<I> <EJB JAR deployment/export/home/mccann/t
ester2.jar> Exception in non-transactional EJB invoke:
java.sql.SQLException: ORA-00942: table or view does not exist
at weblogic.db.oci.OciCursor.getCDAException(OciCursor.java:228)
atweblogic.jdbcbase.oci.Statement.executeUpdate(Statement.java:869)
atweblogic.jdbc.pool.PreparedStatement.executeUpdate(PreparedStatement.
java:65)
atcom.testerEJBPSWebLogic_CMP_RDBMS.create(testerEJBPSWebLogic_CMP_RDBM
S.java:199)
atcom.testerEJBPSWebLogic_CMP_RDBMS.create(testerEJBPSWebLogic_CMP_RDBM
S.java:162)
atweblogic.ejb.internal.EntityEJBContext.create(EntityEJBContext.java:1
18)
atweblogic.ejb.internal.StatefulEJBObject.postCreate(StatefulEJBObject.
java:268)
at com.testerEJBEOImpl.create(testerEJBEOImpl.java:61)
at com.testerEJBHomeImpl.create(testerEJBHomeImpl.java:32)
atcom.testerEJBHomeImpl_WLSkel.invoke(testerEJBHomeImpl_WLSkel.java:68)
atweblogic.rmi.extensions.BasicServerObjectAdapter.invoke(BasicServerOb
jectAdapter.java:347)
atweblogic.rmi.extensions.BasicRequestHandler.handleRequest(BasicReques
tHandler.java:69)
atweblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest
java:15)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:135)
Any help here would be great, this is annoying problem because the Entitybean
deploys fine and no issues are raised at startup time, so the table mustof existed
and the structure must of been correct. But minutes after the serverstarted I
ran my client which tried to invoke this bean with the above exception.
Thanks
Wayne.
Maybe you are looking for
-
How can I see how many entries in an address Book group ?
I used to be able to see at a glance how many entries there were in any particular group. This now seems to have vanished :-( Can I get it back easily ?
-
How to restore itunes playlists
My itunes library and playlists were intact one day and gone the next. I did not have any problems with my computer and the Music files are still on the hard drive of my computer. Is there any way of getting the library to recognize the songs again
-
Cannot copy and paste from webmail in Firefox but can in Safari! Why?
Last months (? after upgrade) I cannot copy and paste from my webmails but can with Safari. Any help with this? Infuriating.
-
Which table has PO# and A/c Information -Urgent
Is there any table where I can get PO # and accounting details such as
-
How to set charecterset while installation
Hi To All, I had install oracle 10R2 64 bit on windows 2003 release2 64 for upgradation and over existing language is arabic for that for upgradation also i have to set language at OS level and while installing i have install only oracle so i want to