[EJB/JBoss] - how to configure the jboss default database DefaultDS to ora
by jack0501
I tried to configure the default database DefaultDS to oracle 9i in the clustered environment.
The step I did is in the following:
1. delete the hsqldb.xml.
2. configure DefaultDS datasource to oracle in the oracle-ds.xml
3. change login-config.xml, oracle-jdbc2-service.xml and oracle-jdbc-state-service.xml file to use DefaultDS.
When I start the jboss, the exception occur in the jboss console. When I check the database, I found 5 tables created in order to use the JMS feature, I can not found the HILOSequence table which supposed to create in the database.
I really appreciate some one help.
Thanks.
Jack
The error message is in the following:
--- MBeans waiting for other MBeans ---
ObjectName: jboss:service=KeyGeneratorFactory,type=HiLo
State: FAILED
Reason: java.sql.SQLException: ORA-00942: table or view does not exist
I Depend On:
jboss:service=TransactionManager
jboss.jca:name=DefaultDS,service=DataSourceBinding
--- MBEANS THAT ARE THE ROOT CAUSE OF THE PROBLEM ---
ObjectName: jboss:service=KeyGeneratorFactory,type=HiLo
State: FAILED
Reason: java.sql.SQLException: ORA-00942: table or view does not exist
I Depend On:
jboss:service=TransactionManager
jboss.jca:name=DefaultDS,service=DataSourceBinding
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3959158#3959158
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3959158
19 years, 9 months
[JBoss Seam] - Stateless search to stateful conversation
by justinwalsh
Hi,
I have a seam component "FindDocumentAction" (a stateless EJB) which is responsible for the search functionality of the application. The user is able to search for documents by entering a reference number.
The outcome of a search can be one of two things:
1) When multiple documents are returned, the search results page is displayed, with a link to display each document (viewdocument page)
2) When a single document is returned from the search (singleton search), we send the user straight on to the viewdocument page for the document.
The viewing of the document is the start of a conversation, handled by a stateful seam component (stateful session bean - viewDocumentAction).
In the first case (multiple search results returned), I generate a link in the results page as follows, which passes in a request parameter containing the document identifier (documentId):
| <s:link action="#{viewDocumentAction.selectDocument}">
| <f:param name="documentId" value="#{doc.id}"/>
| <h:outputText value="#{doc.reference}"/>
| </s:link>
|
This link invokes the selectDocument() method of the viewDocumentAction component (the conversational scoped stateful session bean) - which is annotated with the @Begin tag - and a new conversation is begun:
| @Stateful
| @Name("viewDocumentAction")
| @Scope(ScopeType.CONVERSATION)
| public class ViewDocumentAction implements ViewDocument {
|
| @PersistenceContext(type=PersistenceContextType.EXTENDED)
| private EntityManager em;
|
| @Out
| private Document document;
|
| @RequestParameter("documentId")
| private Integer documentId;
|
| @Begin
| public String selectDocument() {
|
| document = (Document)em.createQuery(
| "from Document d where d.id = :documentId")
| .setParameter("documentId", documentId)
| .getSingleResult();
|
| return "viewDocument";
| }
| }
|
The second case is what is troubling me. I've tried the following approaches with mixed results:
1) Forward straight to the viewDocument page, and create an entry in the pages.xml file:
| <page view-id="/secure/viewDocument.xhtml" action="#{viewDocumentAction.selectDocument}" />
|
... which invokes the selectDocument() method. This also necessitates a change from using the s:link tag mentioned above to using a simple link to the page - as we don't want to invoke the action selectDocument() twice. The request parameter does not seem to be present when the event is generated.
2) In the case of the singleton search result, lookup the stateful bean from the stateless session beans find method:
|
| if (documentSearchResults.size() == 1) {
| // lookup viewDocumentAction
| ViewDocument viewDocumentAction = ....
|
| Document singleDocument = documentSearchResults.get(0);
| return viewDocumentAction.selectDocument(singleDocument);
| }
|
|
thus invoking a new method on the stateful bean which is also used to start the conversation:
| @Begin
| public String selectDocument(Document doc) {
|
| document = em.merge(doc);
| return "viewDocument";
| }
|
Since I am in a stateless component, I don't want to inject a stateful bean using the @EJB tag, as the stateless bean could potentially be shared by multiple clients. The lookup is thus scoped to the method, manual and therefore ugly (jndi name may vary depending on type of deployment etc).
(BTW Should I be asking seam to resolve the named stateful component or should I just do a ejb context lookup and rely on seam to intercept?)
What I'm effectively trying to achieve is to start a conversation (by invoking a components @Begin method) with a request parameter present but this is proving tricky to to programatically. Perhaps I should redirect the client with the request parameter (as per the RESTful example) in the case of a singleton search - but how do I ensure that the conversation is begun when I hit the viewDocument page?
Any pointers would be appreciated.
Thanks
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3959155#3959155
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3959155
19 years, 9 months