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
> >> >>>>>
> >> >>>>>
> >> >>>>
> >> >>>
> >> >>
> >> >
> >>
> >
> >
>
Similar Messages
-
Bean Managed Entity Beans(EJB) using Tangosol.
I am trying to use Bean Managed Entity Beans using Tangosol Coherence.
The entity bean is currently configured in the weblogic-ejb-jar.xml with:
<max-beans-in-cache>200</max-beans-in-cache>
In the public void ejbLoad() method, I am calling the Tangosol Cache to load the entity bean.
If we have have more that 200 request coming at the same time, we get an OutOfMemoryError exception.
Is there anyway to overcome this limitation by somehow having the ejb cache to use the tangosol cache?
Thanks for any help in advance.
KrishanSo far, it's not immediately obvious to us what the exact problem is that you are seeing. It sounds like the VM would be using at least 200MB just for the application server's own internal cache, for example, and that you are also using Coherence within the application server to provide additional caching.
If possible, we should set up a phone call with you and your team, and we could get an engineer from our end to walk through your specific use case with you, so that we could understand what the exact technical challenge(s) is(are) in this particular application.
Peace.
p.s. You can email [email protected] directly to schedule a call. -
Hi,
I have created two bean managed entity beans, User and Role, abstracting users
and groups in a ldap base. A User may have more than one Role. This is represented
by a (bean managed) 1:many relationship directed from User to Role. For some weird
reasons I get a transaction rollback when reading data, when transactions are
turned on (REQUIRED).
While we where running WLS 6.1 sp1 we had no problems with this as we could set
transaction to NOTSUPPORTED for these two EJBs. Due to other hickups we had to
upgrade to sp2 and suddenly the error reappears leading me to believe that NOTSUPPORTED
isn't allowed anymore by the WLS. I know that NOTSUPPORTED isn't required by the
EJB spec, but containers may support it and obviously WLS used to do just that.
I have not seen any change in the release notes of sp2 that indicates that this
behaviour has changed.
Does anybody know if WLS really doesn't support NOTSUPPORTED for enity beans anymore
in sp2?
If anybody are curiuos or have any good ideas, the stacktrace I get is:
javax.ejb.TransactionRolledbackLocalException: EJB Exception:
- with nested exception:
[javax.ejb.EJBException
- with nested exception:
[weblogic.transaction.RollbackException: Unexpected exception in beforeCompletion:
sync=weblogic.ejb20.internal.TxManager$TxListener@1c2906 - with nested exception:
[java.util.ConcurrentModificationException]]]
Start server side stack trace:
java.rmi.RemoteException: EJB Exception: ; nested exception is:
javax.ejb.TransactionRolledbackLocalException: EJB Exception:
- with nested exception:
[javax.ejb.EJBException
- with nested exception:
[weblogic.transaction.RollbackException: Unexpected exception in beforeCompletion:
sync=weblogic.ejb20.internal.TxManager$TxListener@1c2906 - with nested exception:
[java.util.ConcurrentModificationException]]]
java.util.ConcurrentModificationException
at java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:535)
at java.util.LinkedList$ListItr.next(LinkedList.java:476)
at weblogic.ejb20.manager.DBManager.beforeCompletion(DBManager.java:370)
at weblogic.ejb20.internal.TxManager$TxListener.beforeCompletion(TxManager.java:481)
at weblogic.transaction.internal.ServerSCInfo.callBeforeCompletions(ServerSCInfo.java:551)
at weblogic.transaction.internal.ServerSCInfo.startPrePrepareAndChain(ServerSCInfo.java:88)
at weblogic.transaction.internal.ServerTransactionImpl.localPrePrepareAndChain(ServerTransactionImpl.java:980)
at weblogic.transaction.internal.ServerTransactionImpl.globalPrePrepare(ServerTransactionImpl.java:1504)
at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:216)
at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:190)
at weblogic.ejb20.internal.BaseEJBLocalObject.postInvoke(BaseEJBLocalObject.java:207)
at com.takecargo.domainentities.role.RoleBean_1ipw6_ELOImpl.getName(RoleBean_1ipw6_ELOImpl.java:86)
at com.takecargo.domainentities.role.RoleConverter.getVOforRoleLocal(RoleConverter.java:51)
Any kind of help would be appreciated:)
Regards,
Brynjar GlesnesWLS support NotSupported on Entity Beans.
It looks like you've hit a bug in the EJB container where an internal Collection class has been modified while the
container is running through an iterator on it.
You should open a case with [email protected]
-- Rob
Brynjar Glesnes wrote:
Hi,
I have created two bean managed entity beans, User and Role, abstracting users
and groups in a ldap base. A User may have more than one Role. This is represented
by a (bean managed) 1:many relationship directed from User to Role. For some weird
reasons I get a transaction rollback when reading data, when transactions are
turned on (REQUIRED).
While we where running WLS 6.1 sp1 we had no problems with this as we could set
transaction to NOTSUPPORTED for these two EJBs. Due to other hickups we had to
upgrade to sp2 and suddenly the error reappears leading me to believe that NOTSUPPORTED
isn't allowed anymore by the WLS. I know that NOTSUPPORTED isn't required by the
EJB spec, but containers may support it and obviously WLS used to do just that.
I have not seen any change in the release notes of sp2 that indicates that this
behaviour has changed.
Does anybody know if WLS really doesn't support NOTSUPPORTED for enity beans anymore
in sp2?
If anybody are curiuos or have any good ideas, the stacktrace I get is:
javax.ejb.TransactionRolledbackLocalException: EJB Exception:
- with nested exception:
[javax.ejb.EJBException
- with nested exception:
[weblogic.transaction.RollbackException: Unexpected exception in beforeCompletion:
sync=weblogic.ejb20.internal.TxManager$TxListener@1c2906 - with nested exception:
[java.util.ConcurrentModificationException]]]
Start server side stack trace:
java.rmi.RemoteException: EJB Exception: ; nested exception is:
javax.ejb.TransactionRolledbackLocalException: EJB Exception:
- with nested exception:
[javax.ejb.EJBException
- with nested exception:
[weblogic.transaction.RollbackException: Unexpected exception in beforeCompletion:
sync=weblogic.ejb20.internal.TxManager$TxListener@1c2906 - with nested exception:
[java.util.ConcurrentModificationException]]]
java.util.ConcurrentModificationException
at java.util.LinkedList$ListItr.checkForComodification(LinkedList.java:535)
at java.util.LinkedList$ListItr.next(LinkedList.java:476)
at weblogic.ejb20.manager.DBManager.beforeCompletion(DBManager.java:370)
at weblogic.ejb20.internal.TxManager$TxListener.beforeCompletion(TxManager.java:481)
at weblogic.transaction.internal.ServerSCInfo.callBeforeCompletions(ServerSCInfo.java:551)
at weblogic.transaction.internal.ServerSCInfo.startPrePrepareAndChain(ServerSCInfo.java:88)
at weblogic.transaction.internal.ServerTransactionImpl.localPrePrepareAndChain(ServerTransactionImpl.java:980)
at weblogic.transaction.internal.ServerTransactionImpl.globalPrePrepare(ServerTransactionImpl.java:1504)
at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:216)
at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:190)
at weblogic.ejb20.internal.BaseEJBLocalObject.postInvoke(BaseEJBLocalObject.java:207)
at com.takecargo.domainentities.role.RoleBean_1ipw6_ELOImpl.getName(RoleBean_1ipw6_ELOImpl.java:86)
at com.takecargo.domainentities.role.RoleConverter.getVOforRoleLocal(RoleConverter.java:51)
Any kind of help would be appreciated:)
Regards,
Brynjar Glesnes -
Create and remove on read-only beans
while playing around with read-only beans i found that calling create()
ond read-only homes and remove on read only entities does work, which
was new to me. 'work' just means changing the database ;)
ist there any danger in using this (maybe just an internal feature which
does not work in 7.0, ...) ?
axel.You should definitely check out 7.0 and its support for optimistic caching. It
does what you want.
-- Rob
Axel Großmann wrote:
thanks for the quick response.
Rob Woollen wrote:
ist there any danger in using this (maybe just an internal feature which
does not work in 7.0, ...) ?
No, it'll work fine. Until 7.0, read-only beans always ran in an
unspecified transaction. In 7.0, this has been relaxed to allow you to use
all the tx attributes with read-only beans.sounds great; seems that we should give 7.0 beta a try.
what comes to my mind is: if read-only beans would also write changes to
their CMP fields to the database (and send invalidation message) we
would have some kind of write-through-caching bean, wouldnt we ?
this is actually what I'm searching for, since we have to port an
application to weblogic with was designed using one bean per business
object - mapping this to the two-bean read-mostly pattern without
changing the present logic seems impossible without many changes and
loosing the ability to run on other application servers too.
so why not a 'read-mostly-bean' instead of manually implementing it ?
axel.--
AVAILABLE NOW!: Building J2EE Applications & BEA WebLogic Server
by Michael Girdley, Rob Woollen, and Sandra Emerson
http://learnWebLogic.com
[att1.html] -
Standby Database - from READ-ONLY to Managed Recovery
We have a standby database set up for our production environment.
We are able to switch logfile on production and perform the managed recovery and then switch over to READ-ONLY mode. However, when the database is in READ-ONLY mode...I cannot close it if there are active connections.
There are 2 ways I can attempt to close the database...either by "shutdown immediate" or by issuing an "alter system kill session (##,##);"
If I issue the "shutdown immediate", then the RFS process does not transmit any more files...saying the connection to host is not there. Therefore this is not a valid solution.
I can use an alter system kill...to kill all active connections...but it would require to know what other connections are there.
Does anybody know how to best do this...to close the database by forcing all connections to end (except your current one) so you can "alter database close" and switch over to managed recovery?
Please HELP!
Thanks.
-Nicolasu just shutdown the server and restart in standby mode. it will apply all pending archive autometically.
-
You don't really give enough information to answer the question. Probably the most important questions are the coarseness of the database activity, the need for remoteability, and the need for a component and security model.
The short, rule of thumb, answer is that Entity Beans (regardless of BMP vs. CMP) almost always have a significant performance penalty. You should choose Entity Beans because you need/want the features of Entity Beans, not because of performance.
David -
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 -
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 -
Results: read-only vs read/write ejb
Here is some preliminary test results of read-only beans vs read/write
beans.
qualifier: I do not know how busy the Oracle server was as I do not
have access to the machine. This means the results may not be meaningful.
I am posting them anyway (and the code) to hopefully spark some other
posts with more meaningful (and much higher) numbers.
Results:
read/write: 17/s
read-only: 55/s
Oracle server: Ultra-Sparc/10
WLS: 935MHz Linux box
client: 1.6GHz Linux box.
JDK: 1.3.1_02.
Obviously these results are slow and I assume something is wrong
with the Oracle box - but it has been consistently slow over
several weeks. So please don't post about the configuration - I admit
there is likely something wrong with it. Please do post with your own
performance experiences.
while (true) {
String id = reader.readLine();
if (id == null)
break; // finished
MyAccount myAccount = home.findByPrimaryKey(new Long(id));
Cheers.Which version of WLS are you using?
Arunabh
username wrote:
username wrote:
After giving hotspot some time to warm up on the client and server I
was able to get 204 tps using the read-only ejb.
However, the read-only ejb was able to modify attributes (ejbStore()) was
getting called. This is obviously a bug as read-only ejbs do not call
ejbStore() as stated in the manual.
Also, after giving hotspot time to warm up, the readWrite EJB was the
same speed as the readOnly ejb with the simple findByPrimaryKey().
Has anyone else found readOnly ejbs are the same speed as readWrite?
Thanks. -
NON-transactional session bean access entity bean
We are currently profiling our product using Borland OptmizeIt tool, and we
found some interesting issues. Due to our design, we have many session beans which
are non transactional, and these session beans will access entity beans to do
the reading operations, such as getWeight, getRate, since it's read only, there
is no need to do transaction commit stuff which really takes time, this could
be seen through the profile. I know weblogic support readonly entity bean, but
it seems that it only has benefit on ejbLoad call, my test program shows that
weblogic still creates local transaction even I specified it as transaction not
supported, and Transaction.commit() will always be called in postInvoke(), from
the profile, we got that for a single method call, such as getRate(), 80% time
spent on postInvoke(), any suggestion on this? BTW, most of our entity beans are
using Exclusive lock, that's the reason that we use non-transactional session
bean to avoid dead lock problem.
ThanksSlava,
Thanks for the link, actually I read it before, and following is what I extracted
it from the doc:
<weblogic-doc>
Do not set db-is-shared to "false" if you set the entity bean's concurrency
strategy to the "Database" option. If you do, WebLogic Server will ignore the
db-is-shared setting.
</weblogic-doc>
Thanks
"Slava Imeshev" <[email protected]> wrote:
Hi Jinsong,
You may want to read this to get more detailed explanation
on db-is-shared (cache-between-transactions for 7.0):
http://e-docs.bea.com/wls/docs61/ejb/EJB_environment.html#1127563
Let me know if you have any questions.
Regards,
Slava Imeshev
"Jinsong HU" <[email protected]> wrote in message
news:[email protected]...
Thanks.
But it's still not clear to me in db-is-shared setting, if I specifiedentity
lock as database lock, I assumed db-is-shared is useless, because foreach
new
transaction, entity bean will reload data anyway. Correct me if I amwrong.
Jinsong
"Slava Imeshev" <[email protected]> wrote:
Jinsong,
See my answers inline.
"Jinsong Hu" <[email protected]> wrote in message
news:[email protected]...
Hi Slava,
Thanks for your reply, actually, I agree with you, we need to
review
our db
schema and seperate business logic to avoid db lock. I can not say,guys,
we need
to change this and that, since it's a big application and developedsince
EJB1.0
spec, I think they are afraid to do such a big change.Total rewrite is the worst thing that can happen to an app. The
better aproach would be identifying the most critical piece and
make a surgery on it.
Following are questions in my mind:
(1) I think there should be many companies using weblogic serverto
develop
large enterprise applications, I am just wondering what's the maintransaction/lock
mechanism that is used? Transional session / database lock,
db-is-shared
entity
I can't say for the whole community, as for my experience the standard
usage patthern is session fasades calling Entity EJBs while having
Required TX attribute plus plain transacted JDBC calls for bulk
reads or inserts.
is the dominant one? It seems that if you speficy database lock,
the
db-is-shared
should be true, right?Basically it's not true. One will need db-is-shared only if thereare
changes
to the database done from outside of the app server.
(2) For RO bean, if I specify read-idle-timeout to 0, it shouldonly
load
once at the first use time, right?I assume read-timeout-seconds was meant. That's right, but if
an application constantly reads new RO data, RO beans will be
constantly dropped from cache and new ones will be loaded.
You may want to looks at server console to see if there's a lot
of passivation for RO beans.
(3) For clustering part, have anyone use it in real enterpriseapplication?
My concern, since database lock is the only way to choose, how aboutthe
affect
of ejbLoad to performance, since most transactions are short live,if high
volume
transactions are in processing, I am just scared to death about
the
ejbLoad overhead.
ejbLoad is a part of bean's lifecycle, how would you be scared ofit?
If ejbLoads take too much time, it could be a good idea to profile
used SQLs. Right index optimization can make huge difference.
Also you may want cosider using CMP beans to let weblogic
take care about load optimization.
(4) If using Optimization lock, all the ejbStore need to do
version
check
or timestamp check, right? How about this overhead?As for optimistic concurrency, it performs quite well as you can
use lighter isolation levels.
HTH,
Slava Imeshev
"Jinsong Hu" <[email protected]> wrote in message
news:[email protected]...
We are using Exclusive Lock for entity bean, because of we do
not
want
to
load
data in each new transaction. If we use Database lock, that means
we
dedicate
data access calls to database, if database deadlock happens,
it's
hard
to
detect,
while using Exclusive lock, we could detect this dead lock in
container
level.
The problem is, using Exclusive concurrency mode you serialize
access to data represented by the bean. This aproach has negative
effect on ablity of application to process concurrent requests.As
a
result the app may have performance problems under load.
Actually, at the beginnning, we did use database lock and usingtransactional
The fact that you had database deadlocking issues tells that
application logic / database schema may need some review.
Normally to avoid deadlocking it's good to group database
operations mixing in updattes and inserts into one place so
that db locking sequence is not spreaded in time. Moving to
forced serialized data access just hides design/implementation
problems.
session bean, but the database dead lock and frequent ejbLoad
really
kill
us,
so we decided to move to use Exclusive lock and to avoid dead
lock,
we
change
some session bean to non-transactional.Making session beans non-transactions makes container
creating short-living transactions for each call to entity bean
methods. It's a costly process and it puts additional load to
both container and database.
We could use ReadOnly lock for some entity beans, but since weblogicserver will
always create local transaction for entity bean, and we found
transaction
commit
is expensive, I am arguing why do we need create container leveltransaction for
read only bean.First, read-only beans still need to load data. Also, you may seeRO
beans
contanly loading data if db-is-shared set to true. Other reason
can
be
that
RO semantics is not applicable the data presented by RO bean (forinstance,
you have a reporting engine that constantly produces "RO" data,
while
application-consumer of that data retrieves only new data and neverasks
for "old" data). RO beans are good when there is a relatively stable
data
accessed repeatedly for read only access.
You may want to tell us more about your app, we may be of help.
Regards,
Slava Imeshev
I will post the performance data, let's see how costful
transaction.commit
is.
"Cameron Purdy" <[email protected]> wrote:
We are currently profiling our product using Borland
OptmizeIt
tool,
and we
found some interesting issues. Due to our design, we have
many
session
beans which
are non transactional, and these session beans will access
entity
beans
to
do
the reading operations, such as getWeight, getRate, since
it's
read
only,
there
is no need to do transaction commit stuff which really takes
time,
this
could
be seen through the profile. I know weblogic support readonly
entity
bean,
but
it seems that it only has benefit on ejbLoad call, my test
program
shows
that
weblogic still creates local transaction even I specified
it
as
transaction not
supported, and Transaction.commit() will always be called
in
postInvoke(),
from
the profile, we got that for a single method call, such as
getRate(),
80%
time
spent on postInvoke(), any suggestion on this? BTW, most of
our
entity
beans are
using Exclusive lock, that's the reason that we use
non-transactional
session
bean to avoid dead lock problem.I am worried that you have made some decisions based on an improper
understand of what WebLogic is doing.
First, you say "non transactional", but from your description
you
should
have those marked as tx REQUIRED to avoid multiple transactions
(since
non-transactional just means that the database operation becomesits
own
little transaction).
Second, you say you are using exclusive lock, which you shouldonly
use
if
you are absolutely sure that you need it, (and note that it
does
not
work in
a cluster).
Peace,
Cameron Purdy
Tangosol, Inc.
http://www.tangosol.com/coherence.jsp
Tangosol Coherence: Clustered Replicated Cache for Weblogic
"Jinsong Hu" <[email protected]> wrote in message
news:[email protected]...
> -
11gR2 Real Time Apply / open read only
Hi,
I have a single instance primary database with a physical standby. The release is 11.2.0.1.0.
Max Availability mode
LGWR SYNC transport
Data Guard Broker configuration enabled
Both the primary and standby database are registered with the Grid Infrastructure (Standalone installation on each server, no cluster)
When I stop and start the standby database it seems to default to open read only using Managed Real Time Recovery.
SQL> SELECT DEST_ID, RECOVERY_MODE FROM V$ARCHIVE_DEST_STATUS
2> WHERE DEST_ID=2;
DEST_ID RECOVERY_MODE
2 MANAGED REAL TIME APPLY
I do not want to Active Data Guard on this particular database. So I removed and added the database again using srvctl this time supplying the -s mount flag. Now when I stop/start the standby it opens in mount mode and MANAGED recovery which is OK.
My question is why did the standby automatically get opened in read only. Is the a change in behaviour introduced along with Active Data Guard? Is the default behaviour for a database registered with Grid Infrastructure to simply start the database in open mode and becuase this is 11.2 standby this means open read only?
ThanksDear user234564,
This has been introduced in Oracle Database 11g Data Guard New Features and it is called the Active Data Guard. With the new release you can open the physical standby database in read only mode and the real time apply will continue as it is on the mount stage. This ability has not been granted on 10g. So i think it could be the normal behaviour.
11g physical standby database will be opened and the MRP process will still apply the archivelogs to the standby database. You can simply have it tested.
Please refer;
http://download.oracle.com/docs/cd/E11882_01/server.112/e10700/manage_ps.htm#CHDGJEFF
Let me give you a quick hint but it is off topic;
The number of standby databases that a primary database can support is increased from 9 to 30 in this release.
The capability to create 30 standby databases, combined with the functionality of the Oracle Active Data Guard option, allows the creation of reader farms that can be used to offload large scale read-only workloads from a production database.Hope That Helps.
Ogan -
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 -
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
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>
-
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]
-
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
Maybe you are looking for
-
hi, For inhse material ,serial number profile is maintained.confirmation happened with serial number in MFBF(REM). i want to list out seiral numbers of material which is in storage location .any std reports is there for to display and also i want tab
-
Internal apple modem wont open
I recently tried an application ¨Service Scrubber¨and may have scrubbed somehow my internal modem. Internet Connect now tries without sounds or dial tone then produces a window that it¨cannot open the device¨. I have looked in every book, nook and cr
-
Hello Gurus, I want to create park documents on closed posting periods. As you already know the system issue the error message F5201"Posting period xxx xxxx is not open". Do you know how I can change this system behavior without modifying the posting
-
JTabbedPane - traversing focus through tabs
I would like to have focus traverse through tabs in a JTabbedPane. That is, when the focus is on the last component of a tab, hitting the key for forward focus traverse should bring up the next tab and focus on the first component on that tab. I'm al
-
I have downloaded and installed Adobe Flash Player, but it was installed to a "disk image". I don't know what that is, but I cannot view anything that requires flash player. What am I doing wrong?