Problem in using XSQL-Session
We want to use Session information in our application. How do I use XSQL-SEt-Session-param ? Do I have to create another servlet to manage session and call the XSQLServlet from that session servlet or can I use XSQL-session elements ?
Please help on this.
<xsql:set-session-param> sets a session-level parameter to a value
To refer to the session-level parameter value, just refer to its name as a parameter.
No extra servlets needed.
Similar Messages
-
Problem in using XSQL-session and connecting database
Hello
Let me explain clearly. We have some data entry screens for which we want to use session with time out option. Normally in Servlet, we use to create a session with max age option. Then everytime the browser call the servlet we use to check for session.isnew(). If it is new session then we will forward the page to Relogin (because session is timed out) or we proced with further action.
In XSQLServlet, how will do this. Do I have to create my own servlet extended from XSQLServlet ? Override the Service method and write about the session part and call
super(). Here only I am getting confused. In servlet mapping we have given for every .XSQL call run the XSQLServlet. How will I override this ?
And also we have problem with user id and password. We don't want to use the same id (system id as defined in XSQLConfig.xml) for every database connection. We want to define only the connection information like SID, Server, Port number. But user id and password should be dynamic. How can I achieve this ?
Please help us on solving these problem. Thanks.
Lakshmi
nullYou'll need to implement your own classes that implement the:
oracle.xml.xsql.XSQLConnectionManagerFactory
and
oracle.xml.xsql.XSQLConnectionManager
to change the way XSQL handles connections. Using this mechanism, you should be able to implement any alternative connection scheme you choose.
If you run into problems implementing these interfaces, give us a shout here in the forum. -
A problem of using Connection session in Oracle9iAS Report
I used Oracle Report6i Before. Report6i creates a database
connection each time a user sends in a report request. So, each
time the users send in request, they will have different connection
session.
But in Oracle9iAS report, things become different because Report9i
is using the connection pool. It looks like, different users if
they used the same database login ID will use the same connection.
This means all these users will be in same connection session. Then
if these users are trying to run a same report which uses some session
temporary table for reporting, they will interfere with each.
For an example,
1) user A and B are going to run a report named rep_AB
2) In rep_AB, a temporary table named t_table is used to store
the query result for reporting. But this temporary table never
get committed, so it's only valid for the current session. This
is what I actually want.
3) User A and B use the same user ID to login database
4) When report server receives the request from A, it contructed
a connection for A
5) After get connected, User A begins to write into temporary table
t_table in his session.
6) Then comes the request from user B. Report server finds out user
B has the same user ID, then assigns him the same connection used
by user A. So user B gets into the same session as user A.
7) User B begins to write into table t_table, but user A is going to
output the data in t_table as reporting result.
Then eventually, both user A and B give out the wrong report because
actaully they have interefered with each other.
Is there any workaround for this case? Any information and help is
appreciated greatly.
Yong ZhugeI think this is not possible
Develop new program
Use following Function module For Batch
1.QRKS_CHARACTERISTIC
Control chart for a characteristic
2.QRKS_INSPECTION_LOT
Control chart for a characteristic/inspection lot
3.QRKS_MASTER_CHAR_MATERIAL
Control chart for a master inspection characteristic/material
4.QRKS_MASTER_CHARACTERISTIC
Control chart for a master inspection characteristic
5.QRKS_MATERIAL
Control chart for a characteristic/material
Regards
Sanjay -
Problem with beans in session scope
Hello,
I developped a website using JSP/Tomcat and I can't figure out how to fix this problem.
I am using beans in session scope to know when a user is actualy logged in or not and to make some basic informations about him avaible to the pages. I then add those beans to an application scope bean that manages the users, letting me know how many are logged in, etc... I store the user beans in a Vector list.
The problem is that the session beans never seem to be destroyed. I made a logout page which use <jsp:remove/> but all it does is to remove the bean from the scope and not actualy destroying it. I have to notify the application bean that the session is terminated so I manualy remove it from its vector list.
But when a user just leave the site without using the logout option, it becomes a problem. Is there a way to actualy tell when a session bean is being destroyed ? I tried to check with my application bean if there are null beans in the list but it never happens, the user bean always stays in memory.
Is there actualy a way for me to notify the application bean when the user quits the website without using the logout link ? Or is the whole design flawed ?
Thanks in advance.
Nicolas JaccardI understand I could create a listener even with my current setup Correct, you configure listeners in web.xml and they are applicable to a whole web application irrespective of whether you use jsp or servlets or both. SessionListeners would fire when a session was created or when a session is about to be dropped.
but I do not know how I could get a reference of the application bean in >question. Any hint ?From your earlier post, I understand that you add a UserBean to a session and then the UserBean to a vector stoed in application scope.
Something like below,
UserBean user = new UserBean();
//set bean in session scope.
session.setAttribute("user", user);
//add bean to a Vector stored in application scope.
Vector v = (Vector)(getServletContext().getAttribute("userList"));
v.add(user);If you have done it in the above fashion, you realize, dont you, that its the same object that's added to both the session and to the vector stored in application scope.
So in your sessionDestroyed() method of your HttpSessionListener implementation,
void sessionDestroyed(HttpSessionEvent event){
//get a handle to the session
HttpSession session = event.getSession();
//get a handle to the user object
UserBean user = (UserBean)session.getAttribute("user");
//get a handle to the application object
ServletContext ctx = session.getServletContext();
//get a handle to the Vector storing the user objs in application scope
Vector v = (Vector)ctx.getAttribute("userList");
//now remove the object from the Vector passing in the reference to the object retrieved from the Session.
v.removeElement(user);
}That's it.
Another approach would be to remove the User based on a unique identifier. Let's assume each User has a unique id (If your User has no such feature, you could still add one and set the user id to the session id that the user is associated with)
void sessionDestroyed(HttpSessionEvent event){
//get a handle to the session
HttpSession session = event.getSession();
//get a handle to the user object
UserBean user = (UserBean)session.getAttribute("user");
//get the unique id of the user object
String id = user.getId();
//get a handle to the application object
ServletContext ctx = session.getServletContext();
//get a handle to the Vector storing the user objs in application scope
Vector v = (Vector)ctx.getAttribute("userList");
//now iterate all user objects in the Vector
for(Iterator itr = v.iterator(); itr.hasNext()) {
User user = (User)itr.next();
if(user.getId().equals(id)) {
//if user's id is same as id of user retrieved from session
//remove the object
itr.remove();
}Hope that helps,
ram. -
Java Heap Error when using Stateless Session Timer Bean deployed in Oracle
Hi,
Am getting following Java Heap Error when using Stateless Session Timer Bean deployed in Oracle 10g AS R3 (Oracle Containers for J2EE 10g (10.1.3.0.0) (build 060119.1546.05277) ):
06/08/02 14:58:43 javax.ejb.EJBException: java.lang.OutOfMemoryError: Java heap space
06/08/02 14:58:43 at com.evermind.server.ejb.EJBUtils.getLocalUserException(EJBUtils.java:304)
06/08/02 14:58:43 at com.evermind.server.ejb.interceptor.system.AbstractTxInterceptor.convertAndHandleMethodException(AbstractTxInterceptor.java:67)
06/08/02 14:58:43 at com.evermind.server.ejb.interceptor.system.TxNotSupportedInterceptor.invoke(TxNotSupportedInterceptor.java:45)
06/08/02 14:58:43 at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:69)
06/08/02 14:58:43 at com.evermind.server.ejb.StatelessSessionEJBObject.OC4J_invokeMethod(StatelessSessionEJBObject.java:86)
06/08/02 14:58:43 at com.evermind.server.ejb.StatelessSessionEJBHome.invokeTimer(StatelessSessionEJBHome.java:71)
06/08/02 14:58:43 at com.evermind.server.ejb.EJBContainer.invokeTimer(EJBContainer.java:1624)
06/08/02 14:58:43 at oracle.ias.container.scheduler.TimerTask.runBeanTimer(TimerTask.java:92)
06/08/02 14:58:43 at oracle.ias.container.scheduler.TimerTask.run(TimerTask.java:184)
06/08/02 14:58:43 at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:819)
06/08/02 14:58:43 at java.lang.Thread.run(Thread.java:595)
06/08/02 14:58:43 Caused by: java.lang.OutOfMemoryError: Java heap space
I had tried using -Xms / -Xmx options (upto 1 GB).
The trace of exception gets delayed (from being displayed on the console) as the memory size is increased; but after sometime it starts getting displayed on the console.
Even though this exception is displayed on the console, the Timer Bean continues to execute upto sometime before it finally crashes!
If anyone has encountered such problem; would appreciate if you could share the solution.
Regards, VidyadharHi guys, I have the same problem. I have an application EAR file with two modules (EJB and WAR starting in this order). The application can schedule a process via EJB timer. In this case restarting the server I receive the error above. If I change the modules start order --> WAR - EJB the server start correctly, but the application scheduler fails (the persistency is not working) with this error:
07/10/09 10:30:54 FINISSIMO: TimerTask.runBeanTimer java.lang.NullPointerException; nested exception is: java.lang.NullPointerExceptionjavax.ejb.TransactionRolledbackLocalException: java.lang.NullPointerException; nested exception is: java.lang.NullPointerException
java.lang.NullPointerException
at java.util.ListResourceBundle.handleGetObject(ListResourceBundle.java:107)
at java.util.ResourceBundle.getObject(ResourceBundle.java:319)
at java.util.ResourceBundle.getString(ResourceBundle.java:285)
at java.util.logging.Formatter.formatMessage(Formatter.java:108)
at oracle.j2ee.util.TraceLogFormatter.format(TraceLogger.java:124)
at oracle.j2ee.util.TraceLogger$TraceLoggerHandler.publish(TraceLogger.java:105)
at java.util.logging.Logger.log(Logger.java:428)
at java.util.logging.Logger.doLog(Logger.java:450)
at java.util.logging.Logger.log(Logger.java:539)
at oracle.ias.container.timer.TimerEntry.readObjFromBytes(TimerEntry.java:308)
at oracle.ias.container.timer.TimerEntry.getInfo(TimerEntry.java:107)
at oracle.ias.container.timer.Timer.getInfo(Timer.java:367)
at oracle.ias.container.timer.EJBTimerImpl.getInfo(EJBTimerImpl.java:89)
at com.finantix.foundation.integration.ejbtimer.EJBTimerServiceExecutorBean.ejbTimeout(EJBTimerServiceExecutorBean.java:42)
at com.evermind.server.ejb.interceptor.joinpoint.EJBTimeoutJoinPoint.invoke(EJBTimeoutJoinPoint.java:20)
at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
at com.evermind.server.ejb.interceptor.system.SetContextActionInterceptor.invoke(SetContextActionInterceptor.java:44)
at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
at com.evermind.server.ejb.interceptor.system.TxBeanManagedInterceptor.invoke(TxBeanManagedInterceptor.java:53)
at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
at com.evermind.server.ejb.InvocationContextPool.invoke(InvocationContextPool.java:55)
at com.evermind.server.ejb.StatelessSessionEJBObject.OC4J_invokeMethod(StatelessSessionEJBObject.java:87)
at com.evermind.server.ejb.StatelessSessionEJBHome.invokeTimer(StatelessSessionEJBHome.java:38)
at com.evermind.server.ejb.EJBContainer.invokeTimer(EJBContainer.java:1714)
at oracle.ias.container.scheduler.TimerTask.runBeanTimer(TimerTask.java:106)
at oracle.ias.container.scheduler.TimerTask.run(TimerTask.java:220)
at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
at java.lang.Thread.run(Thread.java:595)
javax.ejb.TransactionRolledbackLocalException: java.lang.NullPointerException; nested exception is: java.lang.NullPointerException
at com.evermind.server.ejb.EJBUtils.getLocalUserException(EJBUtils.java:309)
at com.evermind.server.ejb.interceptor.system.AbstractTxInterceptor.convertAndHandleMethodException(AbstractTxInterceptor.java:73)
at com.evermind.server.ejb.interceptor.system.TxBeanManagedInterceptor.invoke(TxBeanManagedInterceptor.java:55)
at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
at com.evermind.server.ejb.InvocationContextPool.invoke(InvocationContextPool.java:55)
at com.evermind.server.ejb.StatelessSessionEJBObject.OC4J_invokeMethod(StatelessSessionEJBObject.java:87)
at com.evermind.server.ejb.StatelessSessionEJBHome.invokeTimer(StatelessSessionEJBHome.java:38)
at com.evermind.server.ejb.EJBContainer.invokeTimer(EJBContainer.java:1714)
at oracle.ias.container.scheduler.TimerTask.runBeanTimer(TimerTask.java:106)
at oracle.ias.container.scheduler.TimerTask.run(TimerTask.java:220)
at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.NullPointerException
at java.util.ListResourceBundle.handleGetObject(ListResourceBundle.java:107)
at java.util.ResourceBundle.getObject(ResourceBundle.java:319)
at java.util.ResourceBundle.getString(ResourceBundle.java:285)
at java.util.logging.Formatter.formatMessage(Formatter.java:108)
at oracle.j2ee.util.TraceLogFormatter.format(TraceLogger.java:124)
at oracle.j2ee.util.TraceLogger$TraceLoggerHandler.publish(TraceLogger.java:105)
at java.util.logging.Logger.log(Logger.java:428)
at java.util.logging.Logger.doLog(Logger.java:450)
at java.util.logging.Logger.log(Logger.java:539)
at oracle.ias.container.timer.TimerEntry.readObjFromBytes(TimerEntry.java:308)
at oracle.ias.container.timer.TimerEntry.getInfo(TimerEntry.java:107)
at oracle.ias.container.timer.Timer.getInfo(Timer.java:367)
at oracle.ias.container.timer.EJBTimerImpl.getInfo(EJBTimerImpl.java:89)
at com.finantix.foundation.integration.ejbtimer.EJBTimerServiceExecutorBean.ejbTimeout(EJBTimerServiceExecutorBean.java:42)
at com.evermind.server.ejb.interceptor.joinpoint.EJBTimeoutJoinPoint.invoke(EJBTimeoutJoinPoint.java:20)
at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
at com.evermind.server.ejb.interceptor.system.DMSInterceptor.invoke(DMSInterceptor.java:52)
at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
at com.evermind.server.ejb.interceptor.system.SetContextActionInterceptor.invoke(SetContextActionInterceptor.java:44)
at com.evermind.server.ejb.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:119)
at com.evermind.server.ejb.interceptor.system.TxBeanManagedInterceptor.invoke(TxBeanManagedInterceptor.java:53)
... 9 more
Any idea?
Thx Auro -
Hi,
If I use transacted session in MDB with container managed transaction, dose the
weblogic ignore the transacted setting or start in it's own transaction. I looked
the JMS Tutorial from Sun, the J2EE server just ignore the transacted setting,
treated it as non-transacted session.
Thanks
Thanks, Greg. I created another XAQCF in MQ JMSADMIN, but still did not help. The
strange part is when this exception happens, in the Event Viewer there is a Message:
An internal Websphere MQ Error has occurred'. In the Trace Log of MQ, the Major
Error Code reported is arcE_XAER_PROTO.
Has anyone encountered this error? The same code works fine when enlist an XAQCF
defined in Weblogic and PUT into a Weblogic JMS Queue instead within the same
XA Transaction. I am attaching the stack trace to this message, just in case,
someone has useful pointers to help me. May be this is MQ Specific though I made
sure I have the latest FixPack for MQ installed.
Thanks,
Sridhar
"Greg Brail" <[email protected]> wrote:
>Yeah. This comes up from time to time. MQ is upset because it wants to
>be
>enlisted in the JTA transaction, but JTA is not enlisting it because
>it
>thinks it's already enlisted. It thinks it's already enlisted because
>the
>same MQ connection factory was used for the MDB input queue, even though
>it's a different JMS connection and session.
>
>You can avoid this by creating another "XAQCF" object in the MQ JNDI
>space
>and giving it a different name. If you do that -- essentially use different
>connection factories for the MDB's input and output queues -- then this
>will
>work.
>
>Also, the transaction enlistement code in 8.1 that supports the
>"resource-ref" feature avoids this problem.
>
> greg
>
>"Sridhar Krishnaswamy" <[email protected]> wrote in message
>news:[email protected]...
>>
>> Hi Greg:
>> I assume you meant to getXAResource() from an Object of type
>XAQueueSession. Here
>> is the code I tried within the onMessage() method of the MDB:
>>
>> XAQueueConnectionFactory factory = (XAQueueConnectionFactory)
>ctx.lookup("XAQCF")
>> ;
>> XAConnection connection = factory.createXAQueueConnection() ;
>>
>> XAQueueSession mqSession = connection.createXAQueueSession() ;
>> XAResource mqResource = mqSession.getXAResource() ;
>> Transaction tran = TxHelper.getTransaction() ;
>> tran.enlist(mqResource) ;
>>
>> //Then I was going to get the QueueSession Object from XAQueueSession,
>obtain
>> the Queue
>> //Object from JNDI, create the Sender
>> //and call the send. But I commented out these calls. Even then, after
>the
>onMessage
>> Method
>> // completes, I get the following error:
>>
>> javax.transaction.SystemException: start() failed on resource
>'com.ibm.mq.MQXAResource':
>> XAER_PROT : Routine was invoked in an improper context
>> javax.transaction.xa.XAException: XA Operation failed. see errorcode
>(which I
>> am assuming is XAER_PROT).
>>
>> Any idea, what I am doing wrong?
>>
>>
>>
>>
>> "Greg Brail" <[email protected]> wrote:
>> >In 7.0, you can do your MQ "put" inside the same JTA transaction that
>> >was
>> >used to receive the message for the MDB, but you have to do the
>transaction
>> >enlistment yourself. Basically, you have to use the class
>> >weblogic.transaction.TxHelper class to get a reference to the current
>> >transaction, then call "enlistResource" on the transaction using the
>> >JTA
>> >"XAResource" that you get from the MQ JMS "Session" object. I'm sure
>> >we've
>> >posted the code in this newsgroup before, but I don't know where,
>so
>> >it
>> >would look something like:
>> >
>> >// First, get the MQ QueueSession object you're going to use to send
>> >the
>> >message
>> >QueueSession mqSession = mqConnection.createQueueSession(false, 0);
>> >XAResource mqResource = mqSession.getXAResource();
>> >weblogic.transaction.Transaction tran =
>> >weblogic.transaction.TxHelper.getTransaction();
>> >tran.enlistResource(mqResource);
>> >// Now send your message
>> >
>> >In 8.1, this will still work, but it's not necessary. If you register
>> >the MQ
>> >XA connection factory as a "resource-reference" in your EJB deployment
>> >descriptors and look it up using java:comp/env the way the documentation
>> >link way below describes, then this transaction enlistment happens
>> >automatically. This only happens when you use the "resource-reference"
>> >feature (which means that old code will still work if it does NOT
>use
>> >this
>> >feature), and it's only in 8.1.
>> >
>> > greg
>> >
>> >"Sridhar Krishnaswamy" <[email protected]> wrote in
>message
>> >news:[email protected]...
>> >>
>> >> Hi Greg:
>> >> Is the Statement
>> >>
>> >> 'But in this case, you don't get a "non-transactional" session,
>but
>> >actually a
>> >> session that participates in the current JTA transaction for the
>thread
>> >where
>> >> your EJB is running'
>> >>
>> >> also true in the case of an MDB running in Weblogic 7.0 (Container
>> >Managed
>> >Transactions)
>> >> driven by an XAQCF and a Foreign JMS Provider such as MQSeries?
>In
>> >other
>> >words,
>> >> if I want the MDB to PUT the Message into an MQSeries Queue, can
>the
>> >PUT
>> >be invoked
>> >> under the Context of the Same XA Transaction? My understanding is
>that
>> >WebLogic
>> >> 7.0 doesn't support send
>> >> messages out of an MDB within the same XA transaction if the MDB
>is
>> >> XA-driven by a foreign JMS provider. Please let me know if this
>is
>> >false.
>> >If true,
>> >> does Weblogic 8.1 also have this restriction?
>> >>
>> >> Thanks,
>> >> Sridhar Krishnaswamy.
>> >>
>> >> "Greg Brail" <[email protected]> wrote:
>> >> >What do you mean by "use transacted session in MDB?" Are you creating
>> >> >a new
>> >> >session inside your MDB, or do you mean something else?
>> >> >
>> >> >The only Sun thing I can think of is in code that looks like this:
>> >> >
>> >> >InitialContext ctx = new InitialContext();
>> >> >QueueConnectionFactory qcf = ctx.lookup("java:comp/env/jms/QCF");
>> >> >Queue queue = ctx.lookup("java:comp/env/jms/Queue");
>> >> >QueueConnection connection = qcf.createQueueConnection();
>> >> >// Create "transacted" session:
>> >> >QueueSession session = connection.createQueueSession(true, 0);
>> >> >QueueSender sender = session.createQueueSender(queue);
>> >> >TextMessage message = session.createTextMessage("Hello, world");
>> >> >sender.send(message);
>> >> >connection.close();
>> >> >
>> >> >If you do this, and exactly this, inside an EJB, including the
>use
>> >of
>> >> >"java:comp/env/jms", in WebLogic Server 8.1, then we do indeed
>ignore
>> >> >the
>> >> >"transacted" flag when you create the session, just like Sun says
>> >we
>> >> >should
>> >> >in the EJB and J2EE specs. But in this case, you don't get a
>> >> >"non-transactional" session, but actually a session that participates
>> >> >in the
>> >> >current JTA transaction for the thread where your EJB is running.
>> >> >
>> >> >The idea is that if you are working inside an EJB, you don't use
>> >transacted
>> >> >sessions -- you use the transaction control given to you by the
>EJB
>> >> >container, including the UserTransaction interface and/or the various
>> >> >container-managed transaction flags, rather than the JMS "transacted
>> >> >session".
>> >> >
>> >> >You can find more information here:
>> >> >
>> >> >http://e-docs.bea.com/wls/docs81/jms/j2ee_components.html
>> >> >
>> >> > greg
>> >> >
>> >> >"Jen" <[email protected]> wrote in message
>> >> >news:[email protected]...
>> >> >>
>> >> >> Hi,
>> >> >>
>> >> >> If I use transacted session in MDB with container managed
>transaction,
>> >> >dose the
>> >> >> weblogic ignore the transacted setting or start in it's own
>> >transaction.
>> >> >I
>> >> >looked
>> >> >> the JMS Tutorial from Sun, the J2EE server just ignore the
>transacted
>> >> >setting,
>> >> >> treated it as non-transacted session.
>> >> >> Thanks
>> >> >
>> >> >
>> >>
>> >
>> >
>>
>
>
[eRRORS.txt]
-
Problem in using Weblogic 5.1
hello friends,
I have a Problem in Using Weblogic 5.1
I am using weblogic 5.1 Enterprise on Linux 2.2.16 SuSE (7.0) with
Dual Celeron 550MHz and 1GB RAM. The server runs our web application
which uses the servelt, JSP and XSQL technology. The problem is
that often i receive ASSERTION FAILURES where after the jsp's stop
displaying content. Is this a Weblogic administration problem or
the underlying OS problem. Kindly advice.
Thankx in Advance
Yajneesh sabharwalIs this an issue with the "T-engine" or the "J-engine"? Are you using a
ubbconfig file or weblogic.properties file? Can you post the stack trace?
This may be an known issue and simply require you to install the latest
service pack for WLS 5.1 (aka. J-engine)...
Mary Ann Slavin wrote:
Accordning to the Software Product Information (SPI) for WLE 5.1 it is
available on the following Linux versions so this could be a problem
with the version you are running.
"BEA WebLogic Enterprise 5.1 software for Red Hat Linux 6.2 and Reliant
Unix 5.45 is available separately. "
MAS
yajneesh Sabharwal wrote:
hello friends,
I have a Problem in Using Weblogic 5.1
I am using weblogic 5.1 Enterprise on Linux 2.2.16 SuSE (7.0) with
Dual Celeron 550MHz and 1GB RAM. The server runs our web application
which uses the servelt, JSP and XSQL technology. The problem is
that often i receive ASSERTION FAILURES where after the jsp's stop
displaying content. Is this a Weblogic administration problem or
the underlying OS problem. Kindly advice.
Thankx in Advance
Yajneesh sabharwal -
Unable to Serialize ReportClientDocument using "StateServer" session mode
Hello,
In my ASP.NET application, I am using "StateServer" session state mode for maintaining session variables. The problem however is that this mode requires all the objects inside the session variables to be serialized and for some reason ReportClientDocument doesn't seem to be serializable.
Here is the code that's not working:
ceSession = Session.Item("ceSession")
ceEnterpriseService = ceSession.GetService("", "InfoStore")
ceInfoStore = New InfoStore(ceEnterpriseService)
rptAppFactory = ceInfoStore.EnterpriseSession.Interface.Service("", "RASReportFactory")
rptClientDoc = rptAppFactory.OpenDocument(rptId, CdReportClientDocumentOpenOptionsEnum.cdReportClientDocumentOpenAsReadOnly)
Session.Add(rptClientDoc)
At the end of the request it throws an exception
"Unable to serialize the session state. In 'StateServer' and 'SQLServer' mode, ASP.NET will serialize the session state objects, and as a result non-serializable objects or MarshalByRef objects are not permitted. The same restriction applies if similar serialization is done by the custom session state store in 'Custom' mode."
[SerializationException: Type 'CrystalDecisions.ReportAppServer.ClientDoc.ReportClientDocumentClass' in Assembly 'CrystalDecisions.ReportAppServer.ClientDoc, Version=12.0.1100.0, Culture=neutral, PublicKeyToken=692fbea5521e1304' is not marked as serializable.]
Is anybody having any idea on how to successfully store ReportClientDocument in the session variable by using "StateServer" session state mode?
ThanksThere is a sample that demonstrates serializing the ReportClientDocument [here|https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/d0a4791b-9d3b-2c10-94a5-86088b6224d4]
-
Using ALTER SESSION inside a stored procedure.... not a good idea?
Hi,
I have two stored procedures, both of which are used to query a database to find a particular book, based on ISBN. One sproc searches our main product catalogue and the other searches our suppliers feed catalogues. The stored procedures are called from a C# application via a search tool and the user is able to search on either our catalogue or our suppliers. The appropriate procedure is called based on the users choices.
However, the following behaviour is observed
I search for an ISBN (is a varchar2 field, as isbn's may contain an X if the checksum digit equates to 10) on a feed, so uses the FEED SPROC. The book is found and returned to the app in about 0.5 seconds. I can repeat this as often as i like on different books etc. always works fine.
I then do the same search but against our own catalogue, so uses our CATALOGUE SPROC. Again the book is found quickly, and the search can be repeated with the same results.
If i then go back and run our FEED SPROC then the search time increases to about 3 minutes !
Both the feed and our catalogue is in the same database, although different schema's the connections will be pooled through our app server.
I can repliacte this every single time. I think i have narrowed doen the cause of this behaviour to a few lines of code in our CATALOGUE SPROC:
-- store values
select value into v_vch_NLS_COMP from nls_session_parameters nsp where nsp.parameter = 'NLS_COMP';
select value into v_vch_NLS_SORT from nls_session_parameters nsp where nsp.parameter = 'NLS_SORT';
-- Ensure case insensitivity throughout
EXECUTE IMMEDIATE 'ALTER SESSION SET NLS_COMP = LINGUISTIC';
EXECUTE IMMEDIATE 'ALTER SESSION SET NLS_SORT = BINARY_CI';
do other stuff
-- restore session variables
EXECUTE IMMEDIATE 'ALTER SESSION SET NLS_COMP = ' || v_vch_NLS_COMP;
EXECUTE IMMEDIATE 'ALTER SESSION SET NLS_SORT = ' || v_vch_NLS_SORT;
If i remove this code then all is well, so i am assuming that using ALTER SESSION inside a stored procedure is the cause of the problem as it would be changing the execution plan of the FEEDS SPROC in some manner? Any ideas? I know i can just rewrite the sproc to avoid using this coding, but wanted to understand if i am doing something wrong by using ALTER SESSION in this manner?
Any pointers would be appreciated.
John Thompson
Software Architect,
play.com
Edited by: user7186902 on 27-May-2009 03:51Hello (and welcome),
It may be a case of having to create a linguistic index to facilitate the queries once you set these session level parameters, i.e..,
CREATE INDEX idx_01 ON tab ((NLSSORT(col1, 'NLS_SORT=BINARY_CI'))It would appear that the setting of those parameters is invalidating index searching on the current indexes. -
Problem while using h:selectOneMenu tag
Hello All,
I am facing a problem while using the <h:selectOneMenu in my JSP.
My requirement is as below,
I am having a list of manager in the select box.
User will select any of the manager and click a command link to assign the manager.
On click of this command link backerbean method should be invoked.
My problem is,
I am able to display the list box without any problem.
But Once I select any value from the list box the command link is not working.
That is click on the command link is not invoking the backer bean method.
My code look as below,
JSP
<td>
<h:selectOneMenu value="#pc_EmployeeDetailsView.assignedMgrPositionId}" id="assignedMgrPositionId" style="width: 170px">
<f:selectItems value="#{pc_EmployeeDetailsView.managerList}" />
</h:selectOneMenu>
</td><td>�</td>
<td><h:commandLink action="#pc_EmployeeDetailsView.assignManager}" onmousedown="setEditAction('assign');">
<h:outputText value="Assign"></h:outputText>
</h:commandLink></td>Backer Bean
SelectItem managerSelectItem = new SelectItem("0","Select Manager");
ArrayList managerSelectItemList = new ArrayList();
managerSelectItemList.add(managerSelectItem);
int managerListSize = managerSearchList.size();
for (int i=0; i<managerListSize; i++) {
Employee manager = (Employee) managerSearchList.get(i);
managerSelectItem = new SelectItem(StringUtils.isNotEmpty(manager.getOrgInfo().getPositionNumber())?manager.getOrgInfo().getPositionNumber():"",StringUtils.isNotEmpty(manager.getFullDisplayName())?manager.getFullDisplayName():"");
managerSelectItemList.add(managerSelectItem);
setManagerList(managerSelectItemList);Please help me on this.
Thanks In AdvanceI have solved this problem by putting the list in portlet session and allowing the get method to get the SelectItem from the session
-
Defining Business Operations using remote session EJBs for WLI2.1
Hello all,
I'm having a deployment issue with WLI 2.1. Is it true that in order to define
a Business Operation in WLI 2.1 that uses a session EJB, the EJB MUST be deployed
in the same JNDI tree (WLS instance) that WLI is running on? Is everyone just
running one admin server that hosts WLI and all other applications on the same
instance?
I'd like to have WLI running on one machine and have my applications running on
another, but at this point seems unobtainable because you cant supply a t3 URL
to that separate machine when defining Business Operations...
Any help would be appreciated,
JonI am new to WLPI and have run across this problem as well. Could you
provide more detail your proxy session bean and maybe include some
example code? Thanks.
Regards,
Rick H.
"Paul Rooney" <[email protected]> wrote:
>
I have come accross the same problem - solved it by using a "proxy" session
bean
that knows how to call out to all the Remote EJBS that I need. This "proxy"
session
bean is deployed with wlpi application.
"Erik Godding Boye" <[email protected]> wrote:
We would like to define business operations in WLI calling EJBs on a
remote machine.
It seems like the EJB have to be deployed locally to appear in the (JNDI)
drop-down
list when defining the business operation.
Is the only way to achieve this functionality to write (or generate)
some kind
of wrapper EJB that will be deployed locally, or do you have other suggestions?
Regards,
E
PS: We're using WLI 2.1 running on WLS 6.1 SP1 -
An SDK user recently sent me this query:
So I wrote this parser:
instance.PARSER.assemble = function() {
var idx = 0; // table index
---SNIP---
return true;
I still don't understand when to use "this.PARSER.xxx" and
"instance.PARSER.xxx" or "Record.prototype.xxx".
I guess that's my main problem at the moment (understanding the laxness
of ECMA script - I'm used to use JAVA, C++ and all that stuff)
Also I don't get it which info to put into the newEvt and which one
into sessRec[0]...
And I also don't get when to use the "legacy" attributes and when the
"new ones" (like evt vs EventName) ...
DCorlette
DCorlette's Profile: http://forums.novell.com/member.php?userid=4437
View this thread: http://forums.novell.com/showthread.php?t=449867And here was my (long-winded) response, which has some details that
folks might find interesting:
1) When the Collector initializes, it creates a few global objects to
keep track of, well, global things.
- One such object is 'instance', which is of class 'Collector' and
represents the actual running Collector instance. We put lots of other
stuff, like the state of parameters, caches, and other "in-memory"
objects into 'instance' as a convenient place to store them (so
'instance.MAPS' holds our maps, for instance).
- In the main Collector loop, we also create (and delete) a couple
other global objects, one of which is 'rec', which represents the next
inbound log record (class 'Record') from the event source.
- Also we create 'e' which represents that output Sentinel event
(class 'Event') that is currently being constructed.
2) In 'normal' Collector flow, the basic idea is that you take the
input record ('rec'), chop it up into pieces (and typically we store
that parsed data back as new attributes of 'rec') and normalize the
data, and then call a conversion routine to "convert" the 'rec' into
'e'. In other words, with rare exceptions you really shouldn't modify
'e' directly, instead you do all your partial parsing on and in 'rec',
and then the conversion to 'e' is dictated by the Rec2Evt DataMap.
3) Also just to make sure this is clear, methods that are declared as
prototypes on a class are members of that class, essentially, sort of
like normal member methods on a Java class. So if you have 'rec', and a
method Record.prototype.foo(), you can call rec.foo() and you'll end up
in a member method (and 'this' will refer to 'rec'). So in general if
you call the method from 'rec' it's a Record class member, from
'instance' it's a Collector member method (and 'this' will be
'instance', and from a Session object (like 'sess' in my example) it's a
Session member method (and 'this' will be the Session).
So you made a comment: "And I also don't get when to use the "legacy"
attributes and when the "new ones" (like evt vs EventName) ..."
The answer here is that the "long" variable aliases are recognized
attributes of the Event class. In most cases, you will NOT access them
directly so it would be somewhat unusual for you to actually write them
in your code. The 'short' tags you're talking about are probably
attributes of the 'rec' object, and those are just temporary variables
you create to hold the partial results from your parsing - they can
actually be anything you want, can be nested into deep structures if you
wish, etc etc. We happen to use the Sentinel internal field names for
convenience and because it helps to indicate (sometimes) the purpose for
which we intend to use that parsed data later on. Ultimately, the only
place you need to care about those 'rec' variables is when you construct
your Rec2Evt.map file that describes how a Record can be converted into
an Event - you'll see those Sentinel long field names on the left (the
*target* Event fields) and you put whatever Record attributes (again,
array references and deep structures in the Record are supported) on the
RHS.
When you're dealing with a Session, however, things get a little wonky.
First of all, you don't have the "simple" logic of 1-1 map from Record
to Event, so in general you don't end up using the global 'e' object as
your output Event (the main loop is typically short-circuited before
e.send() is called). Second, we play some tricks to allow you to
construct Sessions in re-usable ways. Let me explain this second point
first:
A) So, as you know we have a defined Session class. A Session will hold
some number of input Record objects (N+1, since Record [0] is an empty
Record), which then will need to be re-assembled, or parsed, or
summarized, or something. We don't know in advance. As a result, there's
no way we can pre-define a method by which the Session will be parsed -
that's up to you, the developer. So how do you do that?
Well, the first option would be for you to define a *prototype* method
on the Session object. Then when you create a Session in your code, that
method will be available as a prototype. But that can be a little tricky
- we have some scenarios where there are different Session types that
require different parsers, or that the parser may need to be modified
mid-stream. Our solution therefore is to have you create some number of
generic "Session" parsers, essentially as anonymous methods that aren't
attached to anything in particular. For convenience (so we can find them
later), we recommend you put them in the instance.PARSERS bucket, where
there could in fact be other parsers (like SQLOffset parsers). But at
that point the parsers are kind of disembodies parsers that can't really
be used to do anything yet.
At runtime, when you create a Session object, you then determine which
Session parser makes sense for the type of Session you are creating, and
you use the addParser() method to attach one of your stored Session
parsers to the Session. That parser then becomes the canonical parser
for that Session (although you could swap it out later if you wanted
to), and will automatically be called when the Session expires.
B) The second wrinkle is that since you don't have the simple 1-1
Record to Event logic, you have to re-create some of that basic logic
yourself. Your Session parser actually runs in the Session namespace,
and hence 'this' is the Session itself - underneath that you have
sessRecs[0] (a blank record) and sessRecs[1] - [N] which represent the
stored input Records. The general idea is that you would take the bits
and pieces you need from sessRecs[1]-[N] and copy that data into
sessRecs[0] (so it becomes your staging area for parsed data), but
that's optional - you could do it other ways if you really want. For
example, if you know that most of the data you need is already parsed
and in sessRecs[1], then you can just say sessRecs[0] = sessRecs[1], and
you have a copy of the starting record.
The Session object itself has a special send() method that essentially
takes sessRecs[0] and converts it into an Event, but again you don't
have to use that logic if you don't want to. In fact, you could create
multiple custom Rec2Evt DataMaps, multiple output Events from a single
Session, any sort of manipulation is possible. But if you want the
simplest approach, just make sessRecs[0] look like a complete input
Record, and use Rec2Evt.map to define the conversion, then use the
Session.send() method to send it (you need to pass in an Event that has
things like the DeviceEventTime preset, however).
Hope this helps!
DCorlette
DCorlette's Profile: http://forums.novell.com/member.php?userid=4437
View this thread: http://forums.novell.com/showthread.php?t=449867 -
I am posting data for va01 and va02 using BDC session,what happens if
Hi,
I am posting some data for va01 and va02 using BDC session,but what happens if i try to post same data using call transaction.Hi,
That is just another method. You can post the data using Call Transaction as well.
Just give it a try and in case you face some problem revert back with your issue.
We will help you to solve the same.
Hope this helps!!!
Regards,
Lalit -
Two problems in using LKM file to sql
hi all,
i met two problems during use "LKM file to sql" for loading data from csv file to oracle db. please try to help me, thanks a lot!
my environment:
os: win 7
odi version: 11g
The 1st condition is: in the 10th step of the execute session, a table called ".SNP_CHECK_TAB" which could not be created in oracle will be created!
If i modify it to SNP_CHECK_TABLE, the step will pass...
why naming table like this?
create table .SNP_CHECK_TAB
CATALOG_NAME VARCHAR2(100 CHAR) NULL ,
SCHEMA_NAME VARCHAR2(100 CHAR) NULL ,
RESOURCE_NAME VARCHAR2(100 CHAR) NULL,
FULL_RES_NAME VARCHAR2(100 CHAR) NULL,
ERR_TYPE VARCHAR2(1 CHAR) NULL,
ERR_MESS VARCHAR2(250 CHAR) NULL ,
CHECK_DATE DATE NULL,
ORIGIN VARCHAR2(100 CHAR) NULL,
CONS_NAME VARCHAR2(35 CHAR) NULL,
CONS_TYPE VARCHAR2(2 CHAR) NULL,
ERR_COUNT NUMBER(10) NULL
The 2nd condition is: i want to filter out certain name in the source table and the filter string is "BRE.name!='some_value'".
When I clicked the "Testing query" button, the following error shows:"Error while executing query Invalid format description".
It works well when the source db is oracle, why not file? Is there any format for the filter string in file? I don't think so...
JunHi Jun,
Can i contribute a little for ur 2nd problem.
This error is coz, If u are using a filter against a File "data store" u can't test it, only against RDBMS query will be tested at data store level.
Well, for using that filter and make sure its working, drag and drop the source file in the interface (u can get the filter) and make it to execute on STAGING.
Thanks,
Guru -
Hi, Steven,
I have a question about cookies parameters in include-parameters.
When set the following in my xsql file:
<xsql:set-session-param name="current_user" value="{@sessionid}"/>
<xsql:include-param name="mode"/>
<xsql:include-request-params/>
In the xml output, it looks like this.
<request>
<parameters>
</parameters>
<session/>
<cookies/>
</request>
How come the session and cookies values are not appeared in XML file? However, if I reload the xsql file, the session and cookies values are there. Any idea what might be wrong or it is what should be?
Thanks in advance.
Julie ZhuI'd expect the cookies not to show up until the page request after the one in which they are set. This is correct since setting the cookies is something that's done on the response. Reading the cookies is reading them from the request.
Regarding the session variables, it's
always important to say what Web Servlet / Servlet Engine you're using XSQL with. Perhaps the setting of Servlet session variables behaves differently on different servers.
Maybe you are looking for
-
Custom Field in the header of Shopping Cart
Dear all, We have to add a Custom field on the header of the Shopping Cart which will have three values. This field has to flow thru the Bid invitation, Contract and the PO ... Can anybody provide the technical details of the same ?? Which all are th
-
Problem when installing Solaris 10
I've read that there is a post with the same problem I have, but I found no solution there. So I made this tread, hoping someone willing to help me. OK, here is the story... I have tried several times to install Solaris 10, from DVD to my laptop Dell
-
Why can't I sync my phone with my computer after both the ios7 and Itunes 11.1 updates?
I just recently purchased the new iPhone 5s and have been very happy with it. At the same time I updated my itunes to the newest version 11.1.0.126. Since the initial syncing, I have been unable to complete the syncing process. It progresses all th
-
I have tried converting several pdf documents to word and no graphics are produced in any of the conversions.
-
Verity cfsearch returns "collection does not exist" error - when collection does exist
I have created a collection using the Coldfusion Administrator - and it shows up fine when displaying all the collections. I also populated the collection using the <cfindex> function - using a SQL query - and that appeared to work fine. It put 117 e