Invalid reference in persistent store

Scenario: an object in the persistent store holds an invalid reference
(either an object with the referenced id does not exist or it can't be
instantiated for some other reason). When the object is loaded in
memory, an attempt to navigate the invalid reference does not generate
an exception, but instead returns a null. This doesn't seem correct.
I've attached a simple test case that demonstrates the problem.
Alex Albu
Commerce Technologies, Inc.
21 Corporate Drive
Clifton Park, NY 12065

I might be subjective here, but I don't agree, Abe. I don't think that
checking the return value of each method call is the norm in Java. It
is in C, but Java's exceptions are meant to relieve you from this
burden. After all, inconsistent data really is an exceptional
circumstance. Obviously, the granularity of your try/catch blocks,
won't be at the line level. To me, navigating a reference is very
similar with PersistenceManger.getObjectById(). It won't return a null
if the object isn't present in the data store.
Nulls are many times legal values and substituting them for invalid
references takes away the possibility to distinguish between good and
bad data. Code handling invalid references just like it handles nulls
is most likely going to produce wrong results whose cause is going to be
hard to determine.
We have gone to great lengths to ensure that our object model stays
consistent. For example, if A's bField is required by business rules to
be non-null, then our object model offers no way to construct an A
object with a null bField. So if there ise no circumstance under which
bField's getter would return null, why check? If the model has become
inconsistent, that's a serious issue (at least for us) and it is
critical for the application to signal that right away in a clear
fashion (NPE's don't mean anything to production support).
Anyway, as I said, this is just my opinion and I can see how other users
might find your decision suited for their applications. Offering an
option that allows users to control this behavior seems appropriate.
Abe White wrote:
And I'm not sure this behavior is helpful anyway. If you're
trying to dereference an invalid reference, you'll get a NPE,At least it's possible to check for nulls and avoid NPEs. If we threw
an execption on any attempt to load an invalid reference, it would be
impossible for users to avoid the exception.
Consider the following extremely common case:
* Object A has a field bField with a reference to object B.
* Object B is deleted, but the user does not null object A's bField reference.
* Later, the user finds object A and calls A.getBField () to do some operation
on the related B if it exists.
The vast majority of users just want a null to be returned if no related object
exists. Users almost always check for null when dealing with returned objects
in Java; it doesn't get in the way of their programming. Having the
possibility of any getter method for a relation throw an exception, though --
that would force users to build in a lot of exception handling code that
they wouldn't normally include. It breaks the transparency of JDO.
anyway. I guess the only way you can take advantage of this
feature (?) is to test references for null before accessing
them, which doesn't seem reasonable.As stated above, code like this:
B b = a.getBField ();
if (b != null)
is the norm in Java. Code like this:
B b;
try
b = a.getBField ();
catch (JDOUserException jue)
... what could I possibly do to recover here? ...
is not. Additionally, you would still need to do the null check in most
situations, because bField could simply have been set to null.
You can avoid either situation by keeping your object model consistent. This
feature is for careless users. If they're so careless that they also don't
check for null objects, then yes, they'll get a NPE. But with your solution,
they'd get an exception anyway, just a different kind... and an unavoidable
one at that.
I'm interested, though: how would throwing a JDOUserException immediately
help your code? If you can make a compelling enough case, we could offer
this as an option...

Similar Messages

  • Persistent Store Problems for MYSQL Enhanced Cluster With OpenMQ 4.4

    I am trying to implement an enhanced cluster with failover. I have edited the config files for each broker instance for a persistent store. I have appended the following to each of the config.properties files:
    imq.brokerid=myclusterinstanceINSTANCE1 # I substitute INSTANCE2 for INSTANCE1 for broker #2
    imq.persist.store=jdbc
    imq.persist.jdbc.dbVendor=mysql
    imq.persist.jdbc.mysql.property.url=jdbc:mysql://xxx.xxx.xxx.xx:3306/test
    imq.persist.jdbc.mysql.user=user1
    imq.persist.jdbc.mysql.needpassword=true
    imq.persist.jdbc.mysql.password=mypass
    imq.cluster.ha=true
    imq.cluster.clusterid=mycluster
    imq.cluster.brokerlist=xxx.xxx.xxx.x:37676,yyy.yyy.yyy.y:37676
    I then create the persistence storage with "imqdbmgr create tbl". When I view the data in the tables it creates, I have one row. Under Store_Version, I have 410. Under LOCK_ID, it has NULL. When I go to start the brokers with imqbrokerd, I get the following error:
    ERROR [B3198]: Error initializing cluster manager:
    com.sun.messaging.jmq.jmsserver.util.BrokerException: [B4239]: Failed to load persistent store version from database table MQVER41Cmycluster
    at com.sun.messaging.jmq.jmsserver.persist.jdbc.VersionDAOImpl.getStoreVersion(VersionDAOImpl.java:310)
    at com.sun.messaging.jmq.jmsserver.persist.jdbc.DBTool.updateStoreVersion410IfNecessary(DBTool.java:350)
    at com.sun.messaging.jmq.jmsserver.persist.jdbc.JDBCStore.checkStore(JDBCStore.java:3599)
    at com.sun.messaging.jmq.jmsserver.persist.jdbc.JDBCStore.<init>(JDBCStore.java:127)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at java.lang.Class.newInstance0(Class.java:355)
    at java.lang.Class.newInstance(Class.java:308)
    at com.sun.messaging.jmq.jmsserver.persist.StoreManager.getStore(StoreManager.java:157)
    at com.sun.messaging.jmq.jmsserver.Globals.getStore(Globals.java:967)
    at com.sun.messaging.jmq.jmsserver.cluster.ha.HAClusterManagerImpl.initialize(HAClusterManagerImpl.java:181)
    at com.sun.messaging.jmq.jmsserver.Globals.initClusterManager(Globals.java:903)
    at com.sun.messaging.jmq.jmsserver.Broker._start(Broker.java:777)
    at com.sun.messaging.jmq.jmsserver.Broker.start(Broker.java:410)
    at com.sun.messaging.jmq.jmsserver.Broker.main(Broker.java:1971)
    Caused by: java.lang.NullPointerException
    at com.mysql.jdbc.ResultSetImpl.findColumn(ResultSetImpl.java:1103)
    at com.mysql.jdbc.ResultSetImpl.getInt(ResultSetImpl.java:2777)
    at com.sun.messaging.jmq.jmsserver.persist.jdbc.VersionDAOImpl.getStoreVersion(VersionDAOImpl.java:298)
    ... 16 more
    I believe this error is attributed to the NULL value under LOCK_ID. I think that the value under LOCK_ID should be the name of the broker from the config file (even though I specified them in the config files). Any ideas?? THANKS!

    Just some pointers -- maybe this will be of use:
    If you haven't already read it, please take a look at the [ MySQL setup guide|https://mq.dev.java.net/OpenMQ_MySQLCluster_Setup_Guide.html] .
    We recommend using NDB Data-store of MySQL Cluster, though this isn't an absolute requirement. Due to some issues we have found with earlier versions, we recommend using MySQL Cluster, 7.0.9 or better (the current version is 7.0.16, or 7.1.5). Either of these would contain Connector/J.
    I'd also recommend using the latest version -- MQ 4.4update2 (just in case you happen to have an older copy). There were many minor improvements in the integration with MySQL from the original 4.4 release, to update 2. This is linked at the MQ download page: [https://mq.dev.java.net/downloads.html]

  • Unable to get the dataSources while creating the persistent stores.

    Hi, While I am trying to create a persistent store (JDBC Store) I am unable to see the already created DataSources in the dropdown menu. I also tried creating new DataSource from Persistent Store creating screen but still could not see.
    Following steps followed while creating DataSource.
    Fill in the values for
    Name, E.g.: JD-JDBC-Store.
    JNDI Name – jdbc/JobDispatcherDS.
    DatabaseType – Oracle
    Database Driver - Retain the default selection
    Click on ‘Next’
    Click on ‘Next’
    Fill in values for:
    Database Name – SID of the Database
    Host Name – The hostname/IP on which the Database is running
    Port – DB Port
    Database User Name - JOBUSER.
    Password – JOBUSER
    Click on ‘Next’
    Click on ‘Test Configuration’ to ensure the correctness of the values. Got a success message on the screen.
    Click on ‘Next’
    Select your target server. E.g.: AdminServer
    Click on ‘Finish’
    Following steps while creating the Persistent Store
    Clicked on New button. Select ‘Create New JDBC Store’ Option
    Fill in the values.
    name – E.g.: JD-JDBC-Store
    Target server - admin Server.
    data source - not able to get any to select from the DropDown.
    Thank You,
    Naresh.

    Dear Rajesh ,
    I am assuming your server is on Windows  :
    For Eg.
    My SID is PRD and system number 02 and hostname prdserver then command should be execute like : 
    E:\usr\sap\PRD\DVEBMGS02\exe>jcmon pf=E:\usr\sap\PRD\SYS\profile\PRD_DVEBMGS02_prdserver
    Rest all are same :
    In JControl Monitor Program - Main Menu :
    Select : 20 : Local Administration Menu
    And check the status of server0 process it shoud be up and running .
    Regards ,
    Santosh

  • The persistent store record 6,810 could not be found

    Under heavy load, we get an exception stack trace in the log, that says that an expired message could not be deleted. This message is repeated every 15-30 minutes for other records. 5 hours later, it says that a thread is stuck and the server is blocked.
              What to do?
              We use Weblogic 9.2 MP2
              Thanks, Peter
              <Dec 17, 2007 7:19:48 PM MET> <Warning> <Messaging> <BEA-282006> <An error occurred while deleting an expired message for the messaging kernel datadispatcher-2/WeblogicJmsDistributedTopic@Remote@DataDispatc
              her JMS Module!datadispatcher-3@HandlerTopic@Local@DataDispatcher JMS Module!datadispatcher-2@HandlerTopic: weblogic.store.PersistentStoreException: [Store:280029]The persistent store record 6,810 could not
              be found
              weblogic.store.PersistentStoreException: [Store:280029]The persistent store record 6,810 could not be found
              at weblogic.store.internal.DeleteRequest.coalesce(DeleteRequest.java:55)
              at weblogic.store.internal.PersistentStoreImpl.coalesceRequests(PersistentStoreImpl.java:510)
              at weblogic.store.internal.PersistentStoreImpl.getOutstandingWork(PersistentStoreImpl.java:613)
              at weblogic.store.internal.PersistentStoreImpl.run(PersistentStoreImpl.java:621)
              at java.lang.Thread.run(Thread.java:595)
              >
              <Dec 17, 2007 7:19:48 PM MET> <Warning> <Messaging> <BEA-282006> <An error occurred while deleting an expired message for the messaging kernel datadispatcher-2/WeblogicJmsDistributedTopic@Remote@DataDispatc
              her JMS Module!datadispatcher-4@HandlerTopic@Local@DataDispatcher JMS Module!datadispatcher-2@HandlerTopic: weblogic.store.PersistentStoreException: [Store:280029]The persistent store record 6,810 could not
              be found
              weblogic.store.PersistentStoreException: [Store:280029]The persistent store record 6,810 could not be found
              at weblogic.store.internal.DeleteRequest.coalesce(DeleteRequest.java:55)
              at weblogic.store.internal.PersistentStoreImpl.coalesceRequests(PersistentStoreImpl.java:510)
              at weblogic.store.internal.PersistentStoreImpl.getOutstandingWork(PersistentStoreImpl.java:613)
              at weblogic.store.internal.PersistentStoreImpl.run(PersistentStoreImpl.java:621)
              at java.lang.Thread.run(Thread.java:595)
              >
              <Dec 17, 2007 7:19:48 PM MET> <Error> <Store> <BEA-280074> <The persistent store "datadispatcher-fs-2" encountered an unresolvable failure while processing transaction "BEA1-0A0CD965B4DAECF2346C". Shutdown
              and restart to resolve this transaction. weblogic.store.gxa.GXAException: weblogic.store.PersistentStoreException: weblogic.store.PersistentStoreException: [Store:280029]The persistent store record 6,810 co
              uld not be found
              weblogic.store.gxa.GXAException: weblogic.store.PersistentStoreException: weblogic.store.PersistentStoreException: [Store:280029]The persistent store record 6,810 could not be found
              at weblogic.store.gxa.internal.GXAResourceImpl.registerFailedTransaction(GXAResourceImpl.java:597)
              at weblogic.store.gxa.internal.GXATransactionImpl.doOperationCallbacks(GXATransactionImpl.java:243)
              at weblogic.store.gxa.internal.GXAResourceImpl.commit(GXAResourceImpl.java:1451)
              at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:1333)
              at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:577)
              at weblogic.transaction.internal.ServerSCInfo.startCommit(ServerSCInfo.java:486)
              at weblogic.transaction.internal.ServerTransactionImpl.localCommit(ServerTransactionImpl.java:1993)
              at weblogic.transaction.internal.ServerTransactionImpl.globalRetryCommit(ServerTransactionImpl.java:2658)
              at weblogic.transaction.internal.ServerTransactionImpl.globalCommit(ServerTransactionImpl.java:2580)
              at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:278)
              at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:227)
              at weblogic.ejb.container.internal.MDListener.execute(MDListener.java:463)
              at weblogic.ejb.container.internal.MDListener.transactionalOnMessage(MDListener.java:335)
              at weblogic.ejb.container.internal.MDListener.onMessage(MDListener.java:291)
              at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:4072)
              at weblogic.jms.client.JMSSession.execute(JMSSession.java:3962)
              at weblogic.jms.client.JMSSession$UseForRunnable.run(JMSSession.java:4490)
              at weblogic.work.ServerWorkManagerImpl$WorkAdapterImpl.run(ServerWorkManagerImpl.java:518)
              at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
              at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
              weblogic.store.PersistentStoreException: weblogic.store.PersistentStoreException: [Store:280029]The persistent store record 6,810 could not be found
              at weblogic.store.gxa.internal.GXATransactionImpl.commitStoreIO(GXATransactionImpl.java:103)
              at weblogic.store.gxa.internal.GXATransactionImpl.doOperationCallbacks(GXATransactionImpl.java:215)
              at weblogic.store.gxa.internal.GXAResourceImpl.commit(GXAResourceImpl.java:1451)
              at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:1333)
              at weblogic.transaction.internal.XAServerResourceInfo.commit(XAServerResourceInfo.java:577)
              at weblogic.transaction.internal.ServerSCInfo.startCommit(ServerSCInfo.java:486)
              at weblogic.transaction.internal.ServerTransactionImpl.localCommit(ServerTransactionImpl.java:1993)
              at weblogic.transaction.internal.ServerTransactionImpl.globalRetryCommit(ServerTransactionImpl.java:2658)
              at weblogic.transaction.internal.ServerTransactionImpl.globalCommit(ServerTransactionImpl.java:2580)
              at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:278)
              at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:227)
              at weblogic.ejb.container.internal.MDListener.execute(MDListener.java:463)
              at weblogic.ejb.container.internal.MDListener.transactionalOnMessage(MDListener.java:335)
              at weblogic.ejb.container.internal.MDListener.onMessage(MDListener.java:291)
              at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:4072)
              at weblogic.jms.client.JMSSession.execute(JMSSession.java:3962)
              at weblogic.jms.client.JMSSession$UseForRunnable.run(JMSSession.java:4490)
              at weblogic.work.ServerWorkManagerImpl$WorkAdapterImpl.run(ServerWorkManagerImpl.java:518)
              at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
              at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
              weblogic.store.PersistentStoreException: [Store:280029]The persistent store record 6,810 could not be found
              at weblogic.store.internal.DeleteRequest.coalesce(DeleteRequest.java:55)
              at weblogic.store.internal.PersistentStoreImpl.coalesceRequests(PersistentStoreImpl.java:510)
              at weblogic.store.internal.PersistentStoreImpl.getOutstandingWork(PersistentStoreImpl.java:613)
              at weblogic.store.internal.PersistentStoreImpl.run(PersistentStoreImpl.java:621)
              at java.lang.Thread.run(Thread.java:595)
              >
              <Dec 17, 2007 7:19:48 PM MET> <Error> <EJB> <BEA-010026> <Exception occurred during commit of transaction Xid=BEA1-0A0DD965B4DAECF2346C(14187897),Status=Rolled back. [Reason=javax.transaction.xa.XAException
              ],numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds since begin=0,seconds left=60,XAServerResourceInfo[WLStore_deplDomain_datadispatcher-fs-2]=(ServerResourceInfo[WLStore_deplDomain_datadispatcher-fs-2]=(st
              ate=rolledback,assigned=deplMan2),xar=WLStore_deplDomain_datadispatcher-fs-25927290,re-Registered = false),XAServerResourceInfo[datadispatcher-multipool]=(ServerResourceInfo[datadispatcher-multipool]=(state
              =rolledback,assigned=deplMan2),xar=datadispatcher-multipool,re-Registered = false),SCInfo[deplDomain+deplMan2]=(state=rolledback),local properties=({weblogic.jdbc.jta.datadispatcher-multipool=[ No XAConnect
              ion is attached to this TxInfo ]}),OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=deplMan2+141.249.2.220:28200+deplDomain+t3+, XAResources={NetworkControl, WeblogicTimerService
              , datadispatcher-xa-standby, datadispatcher-multipool, WLStore_deplDomain_datadispatcher-fs-2, datadispatcher-xa-active},NonXAResources={})],CoordinatorURL=deplMan2+141.249.2.220:28200+deplDomain+t3+): webl
              ogic.transaction.RollbackException: Could not prepare resource 'WLStore_deplDomain_datadispatcher-fs-2
              at weblogic.transaction.internal.TransactionImpl.throwRollbackException(TransactionImpl.java:1809)
              at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:331)
              at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:227)
              at weblogic.ejb.container.internal.MDListener.execute(MDListener.java:463)
              at weblogic.ejb.container.internal.MDListener.transactionalOnMessage(MDListener.java:335)
              at weblogic.ejb.container.internal.MDListener.onMessage(MDListener.java:291)
              at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:4072)
              at weblogic.jms.client.JMSSession.execute(JMSSession.java:3962)
              at weblogic.jms.client.JMSSession$UseForRunnable.run(JMSSession.java:4490)
              at weblogic.work.ServerWorkManagerImpl$WorkAdapterImpl.run(ServerWorkManagerImpl.java:518)
              at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
              at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
              <Dec 18, 2007 12:33:44 AM MET> <Error> <WebLogicServer> <BEA-000337> <[STUCK] ExecuteThread: '8' for queue: 'weblogic.kernel.Default (self-tuning)' has been busy for "643" seconds working on the request "we
              blogic.work.ServerWorkManagerImpl$WorkAdapterImpl@7aca93", which is more than the configured time (StuckThreadMaxTime) of "600" seconds. Stack trace:
              sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
              java.lang.reflect.Method.invoke(Method.java:585)
              net.sf.hibernate.property.BasicPropertyAccessor$BasicGetter.get(BasicPropertyAccessor.java:96)
              net.sf.hibernate.persister.AbstractEntityPersister.getIdentifier(AbstractEntityPersister.java:306)
              net.sf.hibernate.impl.SessionImpl.checkId(SessionImpl.java:2636)
              net.sf.hibernate.impl.SessionImpl.flushEntity(SessionImpl.java:2461)
              net.sf.hibernate.impl.SessionImpl.flushEntities(SessionImpl.java:2454)
              net.sf.hibernate.impl.SessionImpl.flushEverything(SessionImpl.java:2256)
              net.sf.hibernate.impl.SessionImpl.autoFlushIfRequired(SessionImpl.java:1801)
              net.sf.hibernate.impl.SessionImpl.getQueries(SessionImpl.java:1567)
              net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1532)
              net.sf.hibernate.impl.QueryImpl.list(QueryImpl.java:39)
              ch.meteoswiss.datadispatcher.model.dao.TimedMessageDAO.findByMeteodata(TimedMessageDAO.java:232)
              ch.meteoswiss.datadispatcher.model.dao.TimedMessageDAO.deleteByMeteodata(TimedMessageDAO.java:263)
              ch.meteoswiss.datadispatcher.model.dao.MeteodataDAO.delete(MeteodataDAO.java:482)
              ch.meteoswiss.datadispatcher.model.base.BaseMeteodataDAO.delete(BaseMeteodataDAO.java:194)
              ch.meteoswiss.datadispatcher.model.dao.MeteodataDAO.deleteOutdated(MeteodataDAO.java:432)
              ch.meteoswiss.datadispatcher.timed.CleanUpListener.deleteOutdatedMeteodataEntries(CleanUpListener.java:88)
              ch.meteoswiss.datadispatcher.timed.CleanUpListener.handleNotification(CleanUpListener.java:141)
              weblogic.management.timer.TimerListener$1.run(TimerListener.java:48)
              weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
              weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
              weblogic.management.timer.TimerListener.deliverNotification(TimerListener.java:44)
              weblogic.management.timer.Timer.deliverNotifications(Timer.java:440)
              weblogic.management.timer.TimerNotification$1.run(TimerNotification.java:124)
              weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
              weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
              weblogic.management.timer.TimerNotification.timerExpired(TimerNotification.java:121)
              weblogic.timers.internal.TimerImpl.run(TimerImpl.java:265)
              weblogic.work.ServerWorkManagerImpl$WorkAdapterImpl.run(ServerWorkManagerImpl.java:518)
              weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
              weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
              >

    Please find below an extract of the Java trace (kill -3 on Unix):
              "[STUCK] ExecuteThread: '12' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=1 tid=0x00440ef8 nid=0x34 in Object.wait() [0x85800000..0x85801808]
              at java.lang.Object.wait(Native Method)
              at java.lang.Object.wait(Object.java:474)
              at weblogic.messaging.dispatcher.Request.sleepTillNotified(Request.java:324)
              at weblogic.messaging.dispatcher.Request.wrappedFiniteStateMachine(Request.java:801)
              - locked <0xb3288670> (a weblogic.jms.backend.BEProducerSendRequest)
              at weblogic.messaging.dispatcher.DispatcherImpl.dispatchAsyncInternal(DispatcherImpl.java:129)
              at weblogic.messaging.dispatcher.DispatcherImpl.dispatchAsync(DispatcherImpl.java:112)
              at weblogic.messaging.dispatcher.Request.dispatchAsync(Request.java:1046)
              at weblogic.jms.dispatcher.Request.dispatchAsync(Request.java:72)
              at weblogic.jms.frontend.FEProducer.doDispatch(FEProducer.java:880)
              at weblogic.jms.frontend.FEProducer.sendRetryDestination(FEProducer.java:1010)
              at weblogic.jms.frontend.FEProducer.send(FEProducer.java:1383)
              at weblogic.jms.frontend.FEProducer.invoke(FEProducer.java:1444)
              at weblogic.messaging.dispatcher.Request.wrappedFiniteStateMachine(Request.java:759)
              at weblogic.messaging.dispatcher.DispatcherImpl.dispatchSyncNoTran(DispatcherImpl.java:246)
              at weblogic.jms.dispatcher.DispatcherAdapter.dispatchSyncNoTran(DispatcherAdapter.java:59)
              at weblogic.jms.client.JMSProducer.toFEProducer(JMSProducer.java:1061)
              at weblogic.jms.client.JMSProducer.deliveryInternal(JMSProducer.java:670)
              at weblogic.jms.client.JMSProducer.sendInternal(JMSProducer.java:455)
              at weblogic.jms.client.JMSProducer.send(JMSProducer.java:337)
              at weblogic.jms.client.WLProducerImpl.send(WLProducerImpl.java:966)
              at ch.meteoswiss.datadispatcher.receiver.ReceiverServlet.sendJMSMessage(ReceiverServlet.java:255)
              at ch.meteoswiss.datadispatcher.receiver.ReceiverServlet.doProcess(ReceiverServlet.java:320)
              at ch.meteoswiss.datadispatcher.receiver.ReceiverServlet.doPost(ReceiverServlet.java:297)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
              at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
              at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
              at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
              at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
              at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3231)
              at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
              at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
              at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2002)
              at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1908)
              at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1362)
              at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
              at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
              The method in ReceiverServlet:
                        private static void sendJMSMessage(MeteodataTransfer data) throws NamingException, JMSException {
                      QueueConnection queueConnection = null;
                      QueueSession jmsSession = null;
                      QueueSender jmsSender = null;
                      try {
                          final ServiceLocator initial = ServiceLocator.getInstance();
                          final QueueConnectionFactory factory = (QueueConnectionFactory)initial.lookup(ServiceLocator.CONNECTION_FACTORY); //"java:comp/env/jms/QUEUEFACTORY");
                          final Queue queue = (Queue)initial.lookup("java:comp/env/jms/"+data.getSubscriber().getOutputQueueTx().toUpperCase());
                          queueConnection = factory.createQueueConnection();
                          jmsSession = queueConnection.createQueueSession(false,Session.AUTO_ACKNOWLEDGE);
                          jmsSender = jmsSession.createSender(queue);
                          final ObjectMessage msg = jmsSession.createObjectMessage();
                          msg.setJMSExpiration(...);
                          msg.setObject(data);
                          jmsSender.send(msg); // LINE 255!!! STUCK!!!
                      } finally {
                          JmsUtil.closeQuietly(jmsSender);
                          JmsUtil.closeQuietly(jmsSession);
                          JmsUtil.closeQuietly(queueConnection);
              

  • PLS-S-00487, Invalid reference to variable while compiling PRO*C program

    Hi,
    I am writing a PRO*C code and get an error in compilation.
    Code is as below:
    +#include <stdio.h>+
    +#include <string.h>+
    EXEC SQL INCLUDE sqlca.h;
    int main(int argc , char **argv)
    +{+
    int i;
    EXEC SQL BEGIN DECLARE SECTION;
    VARCHAR connString[100];
    struct emp_record
    +{+
    char name[25];
    char dept[10];
    int id;
    int salary;
    int comm;
    int tot_sal;
    +}e1;+
    EXEC SQL END DECLARE SECTION;
    strcpy (connString.arr, "abcd/efgh@ijkl");
    connString.len = strlen ( connString.arr);
    +printf("\n Connection is [%d][%s]",connString.len,connString.arr);+
    +EXEC SQL CONNECT :connString;+
    +if(sqlca.sqlcode!=0)+
    +{+
    +printf("\nFailed to Connect, sqlcode is %d\n",sqlca.sqlcode);+
    +printf("\nOracle Message = %s", sqlca.sqlerrm.sqlerrmc);+
    +exit(-1);+
    +}+
    +else+
    +{+
    +printf("\nConnected\n");+
    +}+
    +EXEC SQL EXECUTE+
    +BEGIN+
    +emp_calc ( :e1.name,+
    +:e1.id,+
    +:e1.salary,+
    +:e1.tot_sal+
    +);+
    +END;+
    +END-EXEC;+
    +if(sqlca.sqlcode!=0)+
    +{+
    +printf("Oracle Error:[%d][%s]",sqlca.sqlcode,sqlca.sqlerrm.sqlerrmc);+
    +}+
    +}+
    Procedure code is:
    +CREATE OR REPLACE PROCEDURE "EMP_CALC" (+
    +pi_empname in emp.ename%type,+
    +pi_empno in emp.empno%type,+
    +pi_sal in emp.sal%type,+
    +po_totsal out NUMBER)+
    +is+
    +begin+
    +po_totsal := 1.1 * pi_sal;+
    +dbms_output.put_line('Total Salary is:' || po_totsal);+
    +end;+
    *My main aim is to use elements of a structure in procedure call as parameters*
    *But when I compile I get error on such usage as follows:*
    Pro*C/C++: Release 11.2.0.3.0 - Production on Tue Apr 30 16:59:22 2013
    Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
    System default option values taken from: /mtsapp1/ora11g/product/11.2.0.3/dbhome_1/precomp/admin/pcscfg.cfg
    Error at line 52, column 20 in file singleStructOra.pc
    emp_calc ( :e1.name,
    ...................1
    PLS-S-00487, Invalid reference to variable 'E1'
    Error at line 52, column 1 in file singleStructOra.pc
    emp_calc ( :e1.name,
    1
    PLS-S-00000, Statement ignored
    Semantic error at line 50, column 1, file singleStructOra.pc:
    BEGIN
    1
    PCC-S-02346, PL/SQL found semantic errors
    *I would like to know how to resolve this compilation error and how do I use members of structures in such a procedure call.*
    Thanks....

    Sadly PL/SQL blocks do not understand structs (or arrays). DML statements do understand them.
    This is not very clearly stated in the manual, but it does say:
    http://docs.oracle.com/cd/E11882_01/appdev.112/e10825/pc_08arr.htm#autoId33
    Restrictions on Arrays of Structs
    The following restrictions apply to the use of arrays of structs in Pro*C/C++:
    Arrays of structs (just as with ordinary structs) are not permitted inside an embedded PL/SQL block.
    http://docs.oracle.com/cd/E11882_01/appdev.112/e10825/pc_07pls.htm#autoId13
    Do not use C pointer or array syntax in PL/SQL blocks. The PL/SQL compiler does not understand C host-variable expressions and is, therefore, unable to parse them.
    Although the example uses an array of structs, simple structs also fail. I have always had to copy the fields to and from simple variables when calling stored procedures.
    regards,
    David

  • JDBC Persistent Store Exceptions Table needs to be renamed

    we are facing a situation almost every week in production. The only workaround is to rename the table everytime an boune the Weblogic. Oracle recommended to increase the statement timeout. Not sure if that will work.
    Can anyone provide what is the reason behind this. As there is only admin server in this domain with single JMS Server and JDBC Store. So not sure how the ownership is lost. Any help is appreciated .
    ####<Dec 25, 2010 4:32:01 AM IST> <Error> <Store> <gnnosm21> <OSMServer> <[ACTIVE] ExecuteThread: '65' for queue: 'weblogi
    c.kernel.Default (self-tuning)'> <<WLS Kernel>> <1293231721099> <BEA-280075> <JDBC store "oms_jms_store" failed to r
    etain ownership of database table "OM_BEAWLStore", either due to database access problems or due to concurrent accessors o
    f the table. See the linked exception for more information.
    weblogic.store.io.jdbc.JDBCStoreException: [Store:280065]java.sql.SQLException: ORA-01013: user requested cancel of curren
    t operation
    (server="OSMServer" store="oms_jms_store" table="OM_BEAWLStore"):(Linked Cause, "java.sql.SQLException: ORA-01013: user r
    equested cancel of current operation
    at weblogic.store.io.jdbc.JDBCStoreIO.readTableLockRecord(JDBCStoreIO.java:2078)
    at weblogic.store.io.jdbc.JDBCStoreIO.updateTableOwnership(JDBCStoreIO.java:2105)
    at weblogic.store.io.jdbc.ReservedConnection.timerExpired(ReservedConnection.java:436)
    at weblogic.timers.internal.TimerImpl.run(TimerImpl.java:265)
    at weblogic.work.ServerWorkManagerImpl$WorkAdapterImpl.run(ServerWorkManagerImpl.java:518)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
    java.sql.SQLException: ORA-01013: user requested cancel of current operation
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
    at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
    at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:216)
    at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:955)
    at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1060)
    at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:839)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1124)
    at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3316)
    at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3361)
    at weblogic.jdbc.wrapper.PreparedStatement.executeQuery(PreparedStatement.java:100)
    at weblogic.store.io.jdbc.JDBCStoreIO.internalRead(JDBCStoreIO.java:721)
    at weblogic.store.io.jdbc.JDBCStoreIO.readTableLockRecord(JDBCStoreIO.java:2066)
    at weblogic.store.io.jdbc.JDBCStoreIO.updateTableOwnership(JDBCStoreIO.java:2105)
    at weblogic.store.io.jdbc.ReservedConnection.timerExpired(ReservedConnection.java:436)
    at weblogic.timers.internal.TimerImpl.run(TimerImpl.java:265)
    at weblogic.work.ServerWorkManagerImpl$WorkAdapterImpl.run(ServerWorkManagerImpl.java:518)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)

    Hi,
    You didnot mention what is that everytime you mean in your question....
    Did you check is there any other user also using the same database table "OM_BEAWLStore" from your development environment connecting with the same JMS persistance store?

  • PLS-00487: Invalid reference to variable 'RC_PARAMSGET'

    Oracle 9.2 client ORA 8.1.7 Server:
    Trying to run an SP in SQL navigator ( or PL/SQL)
    I get the following error(s)
    ORA-06550: line 6, column 16:
    PLS-00487: Invalid reference to variable 'RC_PARAMSGET'
    ORA-06550: line 6, column 3:
    ++++++++++++++++++++++++++++++++++++++++++++
    Here's the Package and Proc Code with the errors at the end.
    It seems not to like a Ref Cursor, but I'm not experienced enough to know the reason.
    ANy Help would be very appreciated: AJACODE
    ++++++++++++++++++++++++++++++++++++++++++++
    --Package Spec
    Package RPT_NB_GUI_Param_Get_PKG
    IS
    TYPE rc_Params_gettbl IS RECORD (
         o_QueryID          Number,
         o_ParameterID          Number,
         o_Param               VARCHAR2 (20),
         o_Param_Type          VARCHAR2 (50),
         o_Param_QueryID          Number
    TYPE rc_params IS REF CURSOR RETURN rc_Params_gettbl;
    END; -- Package Specification RPT_NB_GUI_Param_Get_PKG
    --+++++++++++++++++++++++++++++++++++++++++
    -- Proc
    Procedure RPT_NB_GUI_Param_Get_PROC
    p_QueryID in Number ,
    rc_ParamsGet IN OUT RPT_NB_GUI_Param_Get_PKG.rc_Params)
    IS
    -- Purpose: To generate Parameters for GUI
    -- MODIFICATION HISTORY
    -- Person           Date      Comments
    -- AJ Grasso           04/11/2003      Created
    BEGIN
    OPEN rc_ParamsGet For
    SELECT
    QP.QueryID
    ,P.ParameterID
    ,P.Parameter
    ,PT.Parameter_Type
    ,PQ.Parameter_QueryID
    FROM
    rpt_Query_Parameter QP, rpt_Parameter P, rpt_Parameter_Type PT, rpt_parameter_query PQ
    WHERE --inner join rpt_Parameter P ON
    (QP.ParameterID = P.ParameterID)
    AND --inner join rpt_Parameter_Type PT  ON
    (QP.Parameter_TypeID = PT.Parameter_TypeID)
    AND --left outer join rpt_parameter_query PQ  ON
    (QP.Parameter_queryID = PQ.parameter_queryID)
    AND (QP.QueryID = p_QueryID) ;
    END; -- RPT_NB_GUI_Param_Get_PROC
    -- ERRORS
    -- +++++++++++++++++
    ORA-06550: line 6, column 16:
    PLS-00487: Invalid reference to variable 'RC_PARAMSGET'
    ORA-06550: line 6, column 3:
    PL/SQL: Statement ignored
    ORA-06550: line 7, column 16:
    PLS-00487: Invalid reference to variable 'RC_PARAMSGET'
    ORA-06550: line 7, column 3:
    PL/SQL: Statement ignored
    ORA-06550: line 8, column 16:
    PLS-00487: Invalid reference to variable 'RC_PARAMSGET'
    ORA-06550: line 8, column 3:
    PL/SQL: Statement ignored
    ORA-06550: line 9, column 16:
    PLS-00487: Invalid reference to variable 'RC_PARAMSGET'
    ORA-06550: line 9, column 3:
    PL/SQL: Statement ignored
    ORA-06550: line 10, column 16:
    PLS-00487: Invalid reference to variable 'RC_PARAMSGET'
    ORA-06550: line 10, column 3:
    PL/SQL: Statement ignored
    ORA-06550: line 16, column 74:
    PLS-00487: Invalid reference to variable 'RC_PARAMSGET'
    ORA-06550: line 16, column 3:
    PL/SQL: Statement ignored
    ORA-06550: line 17, column 78:
    PLS-00487: Invalid reference to variable 'RC_PARAMSGET'
    ORA-06550: line 17, column 3:
    PL/SQL: Statement ignored
    ORA-06550: line 18, column 71:

    Oracle 9.2 client ORA 8.1.7 Server:
    Trying to run an SP in SQL navigator ( or PL/SQL)
    I get the following error(s)
    ORA-06550: line 6, column 16:
    PLS-00487: Invalid reference to variable 'RC_PARAMSGET'
    ORA-06550: line 6, column 3:
    ++++++++++++++++++++++++++++++++++++++++++++
    Here's the Package and Proc Code with the errors at the end.
    It seems not to like a Ref Cursor, but I'm not experienced enough to know the reason.
    ANy Help would be very appreciated: AJACODE
    ++++++++++++++++++++++++++++++++++++++++++++
    --Package Spec
    Package RPT_NB_GUI_Param_Get_PKG
    IS
    TYPE rc_Params_gettbl IS RECORD (
         o_QueryID          Number,
         o_ParameterID          Number,
         o_Param               VARCHAR2 (20),
         o_Param_Type          VARCHAR2 (50),
         o_Param_QueryID          Number
    TYPE rc_params IS REF CURSOR RETURN rc_Params_gettbl;
    END; -- Package Specification RPT_NB_GUI_Param_Get_PKG
    --+++++++++++++++++++++++++++++++++++++++++
    -- Proc
    Procedure RPT_NB_GUI_Param_Get_PROC
    p_QueryID in Number ,
    rc_ParamsGet IN OUT RPT_NB_GUI_Param_Get_PKG.rc_Params)
    IS
    -- Purpose: To generate Parameters for GUI
    -- MODIFICATION HISTORY
    -- Person           Date      Comments
    -- AJ Grasso           04/11/2003      Created
    BEGIN
    OPEN rc_ParamsGet For
    SELECT
    QP.QueryID
    ,P.ParameterID
    ,P.Parameter
    ,PT.Parameter_Type
    ,PQ.Parameter_QueryID
    FROM
    rpt_Query_Parameter QP, rpt_Parameter P, rpt_Parameter_Type PT, rpt_parameter_query PQ
    WHERE --inner join rpt_Parameter P ON
    (QP.ParameterID = P.ParameterID)
    AND --inner join rpt_Parameter_Type PT  ON
    (QP.Parameter_TypeID = PT.Parameter_TypeID)
    AND --left outer join rpt_parameter_query PQ  ON
    (QP.Parameter_queryID = PQ.parameter_queryID)
    AND (QP.QueryID = p_QueryID) ;
    END; -- RPT_NB_GUI_Param_Get_PROC
    -- ERRORS
    -- +++++++++++++++++
    ORA-06550: line 6, column 16:
    PLS-00487: Invalid reference to variable 'RC_PARAMSGET'
    ORA-06550: line 6, column 3:
    PL/SQL: Statement ignored
    ORA-06550: line 7, column 16:
    PLS-00487: Invalid reference to variable 'RC_PARAMSGET'
    ORA-06550: line 7, column 3:
    PL/SQL: Statement ignored
    ORA-06550: line 8, column 16:
    PLS-00487: Invalid reference to variable 'RC_PARAMSGET'
    ORA-06550: line 8, column 3:
    PL/SQL: Statement ignored
    ORA-06550: line 9, column 16:
    PLS-00487: Invalid reference to variable 'RC_PARAMSGET'
    ORA-06550: line 9, column 3:
    PL/SQL: Statement ignored
    ORA-06550: line 10, column 16:
    PLS-00487: Invalid reference to variable 'RC_PARAMSGET'
    ORA-06550: line 10, column 3:
    PL/SQL: Statement ignored
    ORA-06550: line 16, column 74:
    PLS-00487: Invalid reference to variable 'RC_PARAMSGET'
    ORA-06550: line 16, column 3:
    PL/SQL: Statement ignored
    ORA-06550: line 17, column 78:
    PLS-00487: Invalid reference to variable 'RC_PARAMSGET'
    ORA-06550: line 17, column 3:
    PL/SQL: Statement ignored
    ORA-06550: line 18, column 71:

  • Objects with invalid references

    hello everybody,
    since 1 month in our PI dev we have a strange situation.
    Inside every SC we see a tree named "objects with invalid references" that inside cointain the Namespace.
    I notify we have this situation after a massive transport from PI prod to PI dev .
    we decide to do this because no more develop are necessary and we decided to sincronizate the 2 systems.
    It's possible remove this ?
    thanks
    Alessandro

    Hi
    Please check if the Prod and Dev SLD is sync and has all the SWC with same configuration.
    Please also check the dependency maintain in Prod and Dev SWC.
    refer the below discussion
    SWCV deleted from SLD accidently
    regards,
    Harish

  • Looking up a distributed queue with two persistent stores using two JMS Svr

    I am trying to do the following:
    1. Setup a distributed queue, i have two servers which are part of the cluster:
    Server A: t3://localhost:7003
    Server B: t3://localhost:7005
    I go in and create two jms servers:
    JMS Server JA: Target on Server A
    JMS Server JB: Target on Server B
    Now as the jms servers need to use a seperate persistent store for each one of them i create two persistent stores.
    2. Now from my MDB which is deployed on another server i lookup the queue using
    t3://localhost:7003,localhost:7005 as the provider url
    My problem is that i always end up listening to the messages on the first jms server and never get to read the messages on jms server JB as i guess i am able to connect to JMS Server JA so i never try and connect to JB? What to do about this?
    Edited by: user4828945 on Mar 23, 2009 2:32 PM

    Allocation of consumers wouldn't take into account the number of messages on the queue - they'd be allocated randomly. The scenario you're proposing shouldn't happen though - WebLogic Server takes into account whether a member has consumers when sending to a distributed destination, but otherwise, assuming that Queue 1 and Queue 2 both have consumers, then distribution of load will be equal. It's not the amount of consumers that determine how many messages get sent to a distributed destination member - it's whether it has members at all.
    Assuming that did occur initially though, you'd expect processing to be a little bit more intensive on the server with the queue holding 30 messages. It would pretty quickly even up though.
    From that point forward, it would be somewhere between difficult and impossible to get to the second scenario, where you have an unequal number of messages in each distributed destination member, unless the work being sent with each message to an MDB can vary significantly in how long it would take to process.
    Assuming (and it's a big if) you could get to that scenario, then the MDBs wouldn't switch over - they stay connected to a particular distributed destination member. And it's their connection to a member as a consumer that controls how WebLogic Server load balances messages (assuming default configuration) so that's part of what makes it unlikely to get there.
    From going back to first principles in the documentation, it seems like your best result would actually be from deploying the MDB to the cluster - that way, there's no remote connections to JMS queues, and you get a pool of MDBs on each server instance.
    Ref here: http://e-docs.bea.com/wls/docs81/ejb/message_beans.html

  • WLS 10.3.3 - BEA-280061 The persistent store could not be deployed

    Hi,
    We have an application which is using WLS 10.3.3. After installing, whenever we start a managed server, it fails with:
    <BEA-280061> <The persistent store "XYZ" could not be deployed: java.io.IOException: [Store:280044]The file store directory "/<PATH TO STORE>/XYZ" does not exist
    java.io.IOException: [Store:280044]The file store directory "/<PATH TO STORE>/XYZ" does not exist
         at weblogic.store.io.file.StoreDir.throwIOException(StoreDir.java:173)
         at weblogic.store.io.file.StoreDir.createDirectory(StoreDir.java:226)
         at weblogic.store.admin.FileAdminHandler.prepareCommon(FileAdminHandler.java:158)
         at weblogic.store.admin.FileAdminHandler.prepare(FileAdminHandler.java:104)
         at weblogic.management.utils.GenericManagedService.prepareDeployment(GenericManagedService.java:204)
         at weblogic.management.utils.GenericServiceManager.prepareDeployment(GenericServiceManager.java:121)
         at weblogic.management.internal.DeploymentHandlerHome.invokeHandlers(DeploymentHandlerHome.java:628)
         at weblogic.management.internal.DeploymentHandlerHome.prepareInitialDeployments(DeploymentHandlerHome.java:408)
         at weblogic.management.deploy.internal.DeploymentAdapter$2.doPrepare(DeploymentAdapter.java:98)
         at weblogic.management.deploy.internal.DeploymentAdapter.prepare(DeploymentAdapter.java:191)
         at weblogic.management.deploy.internal.AppTransition$1.transitionApp(AppTransition.java:22)
         at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:240)
         at weblogic.management.deploy.internal.ConfiguredDeployments.prepare(ConfiguredDeployments.java:166)
         at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:122)
         at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:181)
         at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:97)
         at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    >
    On investigation, the data/store directory does exist and the path is correct, but the store name directory does not - so for example if the store is called XYZ, there is no folder XYZ in data/store.
    There are no errors in the managed server log at all up until this point.
    We can get this working by:
    * Starting the Managed server
    * It fails
    * ShutDown the Managed Server
    * Create the folder XYZ using mkdir
    * Start the Managed Server (this works)
    This is the associated section from the config.xml:
    <file-store>
    <name>XYZ</name>
    <target>manserv-1</target>
    </file-store>
    This is a four node cluster and this store is deployed to all of the nodes - all four nodes have the same issue.
    Obviously I'd like to know why this is happening so we can correct it. I have looked round the web but can't see this particular error anywhere.
    Thanks in advance for any help
    Edited by: 843385 on Mar 10, 2011 6:03 AM

    Make sure the directory to which the file store points in available.
    - Target attribute of the file store (The server instances or migratable targets defined in the current domain that are candidates for hosting the
    file store. In a clustered environment, a recommended best practice is to target a custom file store to the same migratable target as the migratable
    JMS service, so that a member server will not be a single point of failure. A file store can also be configured to automatically migrate from an
    unhealthy server instance to a healthy server instance with the help of the server health monitoring services.)
    - Directory attribute of the file store (The path name to the file system directory where the file store maintains its data files. When targeting a
    file store to a migratable target, the store directory must be accessible from all candidate server members in the migratable target. For highest
    availability, you can use a SAN (Storage Area Network) disk.)
    Note that a filestore is a singleton service and is targetted to one server in the cluster at a time, in your case manserv-1.
    So on the machine where manserv-1 runs you must make sure the directory "/<PATH TO STORE>/XYZ exists.

  • Unable to connect to JDBC Persistent Store

    - There are two managed server in a cluster on a WLS 9.2 MP2 and the version of database is 9..2.0.8
    - Trying to start managed server but getting java.lang.Assertion error.
    - Application also does not work.
    - Managed server 1 is not starting and throwing the java.lang.Assertion error.
    - It connects to a JDBC persistent store.
    - Managed server 2 starts perfectly and connects to it's own JDBC persistent store.
    - Both managed servers use the same Oracle Database 9.2.0.8.
    - There is different JDBC store for both the managed servers.
    - Each persistent store has its own separate table in the database
    ####<Jun 6, 2010 10:40:45 AM PDT> <Error> <Deployer> <emfd2> <WLISMMS1> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1275846045224> <BEA-149260> <A failure occurred during application startup.
    >
    Need Help!!
    >
    Edited by: user12941236 on Jun 10, 2010 7:10 AM
    Edited by: user12941236 on Jun 10, 2010 7:11 AM

    weblogic.application.ModuleException: ERROR: Could not activate EIJMSModule!ApplicationErrorQueue01
         at weblogic.jms.backend.BEDestinationRuntimeDelegate.activate(BEDestinationRuntimeDelegate.java:238)
         at weblogic.jms.module.JMSModule$EntityState.setState(JMSModule.java:1717)
         at weblogic.jms.module.JMSModule$EntityState.setState(JMSModule.java:1667)
         at weblogic.jms.module.JMSModule$EntityState.access$100(JMSModule.java:1608)
         at weblogic.jms.module.JMSModule.activate(JMSModule.java:332)
         at weblogic.jms.module.ModuleCoordinator.activate(ModuleCoordinator.java:179)
         at weblogic.application.internal.flow.ModuleListenerInvoker.activate(ModuleListenerInvoker.java:107)
         at weblogic.application.internal.flow.DeploymentCallbackFlow$2.next(DeploymentCallbackFlow.java:381)
         at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
         at weblogic.application.internal.flow.DeploymentCallbackFlow.activate(DeploymentCallbackFlow.java:71)
         at weblogic.application.internal.flow.DeploymentCallbackFlow.activate(DeploymentCallbackFlow.java:63)
         at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:635)
         at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
         at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:212)
         at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:154)
         at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:80)
         at weblogic.deploy.internal.targetserver.BasicDeployment.activate(BasicDeployment.java:181)
         at weblogic.deploy.internal.targetserver.BasicDeployment.activateFromServerLifecycle(BasicDeployment.java:358)
         at weblogic.management.deploy.internal.DeploymentAdapter$1.doPrepare(DeploymentAdapter.java:42)
         at weblogic.management.deploy.internal.DeploymentAdapter.prepare(DeploymentAdapter.java:177)
         at weblogic.management.deploy.internal.AppTransition$1.transitionApp(AppTransition.java:21)
         at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:233)
         at weblogic.management.deploy.internal.ConfiguredDeployments.prepare(ConfiguredDeployments.java:165)
         at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:122)
         at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:173)
         at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:89)
         at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
    weblogic.messaging.kernel.KernelException: The Messaging Kernel EIJMSServer01 has not yet been opened
         at weblogic.messaging.kernel.internal.KernelImpl.checkOpened(KernelImpl.java:191)
         at weblogic.messaging.kernel.internal.DestinationImpl.activate(DestinationImpl.java:279)
         at weblogic.messaging.kernel.internal.QueueImpl.activate(QueueImpl.java:1629)
         at weblogic.messaging.kernel.internal.DestinationImpl.resume(DestinationImpl.java:263)
         at weblogic.messaging.kernel.internal.QueueImpl.resume(QueueImpl.java:1805)
         at weblogic.jms.backend.BEDestinationImpl.start(BEDestinationImpl.java:604)
         at weblogic.jms.backend.BEDestinationRuntimeDelegate.activate(BEDestinationRuntimeDelegate.java:235)
         at weblogic.jms.module.JMSModule$EntityState.setState(JMSModule.java:1717)
         at weblogic.jms.module.JMSModule$EntityState.setState(JMSModule.java:1667)

  • PLS-00487: Invalid reference to variable ' expression '

    oracle database 10G
    OS unix
    One of procedure is giving error PLS-00487: Invalid reference to variable '<expression>' while compilation in above database while it is compiling
    successfully in other database.
    Is there any database error?

    PLS-00487: Invalid reference to variable "string"
    Cause: A variable was referenced in a way that is inconsistent with its datatype. For example, a scalar variable might have been mistakenly referenced as a record, as follows: DECLARE CURSOR emp_cur IS SELECT empno, ename, sal FROM emp; emp_rec emp_cur%ROWTYPE; my_sal NUMBER(7,2); BEGIN ... total_sal := total_sal + my_sal.sal; -- invalid ...
    Action: Check the spelling of the variable name. Make sure the variable was declared properly and that the declaration and reference are consistent regarding datatype.
    Most probably the compiler "sees" some other type variable with the same name first which in the other database doesn't exist or is out of scope.
    Regards
    Etbin

  • Saving a JMS Message in a Persistent Store

    Hello Friends,
    I am going to store a JMS message in a persistent store like a database and then recreate it when needed. What I will be doing is storing the JMS headers individually. Then storing all the properties and then the message body. I just wanted to confirm that with this data I would be able to recreate the entire message.

    Not sure of the answer to this (I suspect re-creating the message with exactly the same values as it started with will be a bit more tricky than you would imaging). Why don't you try creating a blank message and setting every single header / property? You'll probably get some exceptions / values being over written when you send.
    The real question is are you 100% sure you need to do this? The whole idea smells fishy. Why do you need the JMS Headers? Things would be far easier if the body of the message contained everything you needed. Why do you have to store the message in a database rather than leave it on a persistent queue?

  • Invalid reference parameter in distribution list

    Hi all!
    I want to distribute a very simple report that has a user parameter 'P_1'.
    The basic problem I have is to reference this parameter P_1 in my distribution file:
    I always get the following error message:'Invalid reference parameter '&P_1' in distribution list.
    <destinations>
    <file id="MyFiles" name="&amp;&lt;P_1&gt;_test.pdf" format="pdf" instance="all">
    <include src="report"/>
    </file>
    </destinations>
    Any idea what's wrong here?
    Thanks
    Thorsten

    Please try with encoded versions of these special params (Since they have special meanings in XML )
    & --> &amp;
    (less than) < --> &lt;
    Greater than > --> &gt;
    So the param becomes - &amp;&lt;P_1&gt;...
    This is explained in doc
    (HTML) http://otn.oracle.com/products/reports/htdocs/getstart/docs/A92102_01/title.htm
    Please See chapter 9 - Creating advanced distributions
    NOTE: (from docs)
    There is no special requirement for the greater-than symbol (>)used with variables, but for consistency, we recommend that you use the encoded version (&gt;).
    Thanks
    The Oracle Reports Team

  • Error:Invalid reference to variable 'PARTS1.PNUM%TYPE' - how to resolve

    error:
    ERROR at line 29:
    ORA-06550: line 29, column 39:
    PLS-00487: Invalid reference to variable 'PARTS1.PNUM%TYPE'
    ORA-06550: line 29, column 4:
    PL/SQL: SQL Statement ignored
    DECLARE
    cursor c1 is select pnum from parts1;
    TYPE NumTab IS TABLE OF parts1.pnum%TYPE INDEX BY PLS_INTEGER;
    TYPE NumTab1 IS TABLE OF parts1.pnum%TYPE INDEX BY PLS_INTEGER;
    --TYPE NameTab IS TABLE OF parts1.pname%TYPE INDEX BY PLS_INTEGER;
    pnums NumTab;
    pnums1 NumTab1;
    -- pnames NameTab;
    --iterations CONSTANT PLS_INTEGER := 500;
    t1 INTEGER;
    t2 INTEGER;
    t3 INTEGER;
    l_num_index integer := 0;
    BEGIN
    FOR j IN 1..50000 LOOP -- load index-by tables
    insert into parts1 values(j);
    END LOOP;
    commit;
    t1 := DBMS_UTILITY.get_time;
    /* FOR i IN 1..iterations LOOP -- use FOR loop
    INSERT INTO parts1 VALUES (pnums(i));
    END LOOP;
    select pnum bulk collect into pnums from parts1;
    t2 := DBMS_UTILITY.get_time;
    open c1;
    loop
    l_num_index := l_num_index + 1;
    fetch c1 into pnums1(l_num_index).pnum;
    EXIT WHEN c1%notfound;
    end loop;
    close c1;
    t3 := DBMS_UTILITY.get_time;
    DBMS_OUTPUT.PUT_LINE('Execution Time (secs)');
    DBMS_OUTPUT.PUT_LINE('---------------------');
    DBMS_OUTPUT.PUT_LINE('FOR loop: ' || TO_CHAR((t2 - t1)/100));
    DBMS_OUTPUT.PUT_LINE('FORALL: ' || TO_CHAR((t3 - t2)/100));
    COMMIT;
    END;
    thanks,
    vinodh

    The line number in the error message is nearly always a good clue.
    fetch c1 into pnums1(l_num_index).pnum;should be
    fetch c1 into pnums1(l_num_index);

Maybe you are looking for

  • Reports 6.0 and Parameter Lists and Generate to File

    I am using the run_product built in from Forms 6.0 and opening up a report passing it several parameters via a parameter list. Everything works great when previewing the report. There is the option in the report preview under File -> Generate to File

  • Issue with Word 2010

    Hi Team, We are facing issue with Word 2010. User has created a document in Word 2007 and they inserted a symbol °C in Times New Roman and Areal. Please find below the text which has issue. 干燥温度:60℃ 温度:95℃, In the document, instead of ℃ it is showing

  • Can't connect to OID using SSL (handshake failed NZerr 29039)

    Hi! I'm trying to set up OID running on Windows Server 2003 for testing purposes. I have downloaded the files as_windows_x86_oim_oif_101401_disk(1/2) and installed Oracle Internet Directory only. I'm able to connect using standard clear text and usin

  • Form field answers appear blank until I click on them - why?

    I have created a form using InDesign, however when customers submit the form, the fields appear blank. Only when I click on the field the information appears. How do I solve this so I can see all answers without having to click on each individual fie

  • OEL 4 on VMware Static IP configuration.

    Hi I am trying to install OEL4 as a guest OS on VMware workstation 5 host OS is Vista. My problem is that i cant use DHCP. Sometimes my laptop is connected to Internet some times not. Now i want to access my Virtual machine from Host Os using Putty.