1 application 2 ejb 2 database connections
Hello all.
I have one application with 3 modules.
1 web module with jsps, working with ADF and jsf.
2 ejb modules, each one I need to connect to a different database.
The problem is that the 2 ejbs are connecting to de first module's database, so the second ejb is not able to find the tables mapped to the entities.
How can I configure this 2 ejbs to connect to one databes each?
Thanks in advance.
Marko.
Hi,
what if the JNDI lookup is done within the session bean ? As I see it, the only way out of this is to handle the different database connects and transactions manually. EJB does not provide you and option for this
Frank
Similar Messages
-
(IMP)Application module and database connection
Hi,
How application module pooling and database connection pooling is working ?
Currently i m facing a problem like if i am creating 10 browser session then it doesn't mean that i'll have only 10 db sessions. While closing the browser session of application module time out respective db session is not removed.
In this case, invalid db session are created in bulk which is crashing database sometime. We have writter script to kill those session periodically but in this case if application module is accessing such dbconnection then we are getting session killed error or not logged in error.
To over come we need to bounce the server (middle tier).
Is there any proper way to solve this or am i doing something wrong ?
Please let me know if you need any more details.
Thanks in advance
DevangThanks for your prompt reply Ricky.
I just found out that in some of the JSP pages in application
<jbo:ReleasePageResources/> is not written. Should this problem arise because of this?
could you please tell me how can I release page resources in UIX pages ?
Datasources.xml file content
<data-source class="com.evermind.sql.DriverManagerDataSource"
name="AITDS"
location="jdbc/AITCoreDS"
pooled-location="jdbc/pooled/AITPDS"
xa-location="jdbc/xa/AITXADS"
ejb-location="jdbc/AITDS"
connection-driver="oracle.jdbc.driver.OracleDriver"
username=<USERNAME>
password=<PASSWORD>
url=<URL>
inactivity-timeout="30"
/>
bc4j.xcfg file
<BC4JConfig>
<AppModuleConfigBag>
<AppModuleConfig name="GsaServerModuleLocal">
<DeployPlatform>LOCAL</DeployPlatform>
<JDBCDataSource>jdbc/AITCoreDS</JDBCDataSource>
<jbo.project>gsa</jbo.project>
<AppModuleJndiName>oracle.appsit.gsa.server.GsaServerModule</AppModuleJndiName>
<java.naming.factory.initial>oracle.jbo.common.JboInitialContextFactory</java.naming.factory.initial>
<ApplicationName>oracle.appsit.gsa.server.GsaServerModule</ApplicationName>
</AppModuleConfig>
</AppModuleConfigBag>
</BC4JConfig>
Let me know if you need any more detail.
Thanks in advance
Devang -
How to host one application using different database connection on OAS?
Hi,
Jdeveloper - 10.1.3.4
Application - ADF/BC
Oracle Application Server - 10.1.3
Above our the specifications for our application,
We have two database schemas different for development and production therfore we have different databse connections for the two,
we have one application which is in production and enhacements on the same application are done by the development team.
Since we have two different schemas for developement and prduction we use different database connections for the application on development and production.
The problem is our Model and View Controller project are same, only the database connection file changes that's why we are able to host only on application at a time on our OAS. This is probably because the URL generated by OAS for developemnt and prodyction application is same.
Is there a way we can host two instances of the same application with two different database connections on the a single OAS.
Thanks & Regards,
RakshaUse different deployment profiles each with a different context root for your application?
See: http://one-size-doesnt-fit-all.blogspot.com/2009/02/configuring-separate-dev-test-prod-urls.html -
How to immediately released database connection in jclient form app ?
Hello Steve,
We want our jclient form application could immediately released database connection when its be closed,
We had follow your Weblog technical paper about http://radio.weblogs.com/0118231/stories/2005/02/10/amPoolingConsiderationsForAdfJclient.html , it mentioned following step to release Jclient database connection, but in our jclient project when we close separate jclient form application the database connection seems not immediately released(we monitor through TOAD trace session), the database connection will continue stay alive until we close the all project application.
Call panelBinding.releaseDataControl() method before our form application closed,
Set the AM pool's minimum available size to 0 (zero), and set the idle time and pool monitor interval shorter if the up-to 20-minute wait (in case it takes two wakeup cycles for the AM instance to be idle more than its idle time) is not something you like, or
Disable AM pooling altogether (jbo.ampooling.doampooling=false)In our project application the database connection behavior like following:
1.when we open every Jclient form application , it will establish a new database connection for every form application
2.But when we closed the jclient form application , the database connection still exist
3.But when we open the same jclient form application again, the database connection will not create new database connection , it seems using the same connection when this application first create.
4.when we close the all project application , it will release all database connection.
Could you help us, thanks.
Sincerely from, TIng-RungHello Steve,
We have been study the paper that you mentioned, sorry that we still got some confused about AM pool and jdbc pool, My project bc4j,xcfg like following , could you help us what we missing ?
==============================
<?xml version = '1.0' encoding = 'UTF-8'?>
<BC4JConfig>
<AppModuleConfigBag>
<AppModuleConfig name="xxxAppModuleLocal">
<jbo.ampool.maxinactiveage>5000</jbo.ampool.maxinactiveage>
<user>xxx</user>
<jbo.project>His</jbo.project>
<AppModuleJndiName>com.xxx.business.module.xxxAppModule</AppModuleJndiName>
<DeployPlatform>LOCAL</DeployPlatform>
<jbo.poolmonitorsleepinterval>10000</jbo.poolmonitorsleepinterval>
<jbo.poolmaxinactiveage>5000</jbo.poolmaxinactiveage>
<JDBCName>NEWNTUHRIS</JDBCName>
<RELEASE_MODE>Stateless</RELEASE_MODE>
<jbo.recyclethreshold>0</jbo.recyclethreshold>
<ApplicationName>com.xxx.business.module.xxxAppModule</ApplicationName>
<java.naming.factory.initial>oracle.jbo.common.JboInitialContextFactory</java.naming.factory.initial>
<password>xxxx</password>
<jbo.poolminavailablesize>0</jbo.poolminavailablesize>
<DBconnection>jdbc:oracle:thin:@10.0.0.8:1521:xxx</DBconnection>
<jbo.ampool.minavailablesize>0</jbo.ampool.minavailablesize>
<jbo.ampool.monitorsleepinterval>10000</jbo.ampool.monitorsleepinterval>
</AppModuleConfig>
</AppModuleConfigBag>
<ConnectionDefinition name="xxx">
<ENTRY name="JDBC_PORT" value="1521"/>
<ENTRY name="ConnectionType" value="JDBC"/>
<ENTRY name="HOSTNAME" value="xx.xx.xx.xx"/>
<ENTRY name="DeployPassword" value="true"/>
<ENTRY name="user" value="xxx"/>
<ENTRY name="ConnectionName" value="xxx"/>
<ENTRY name="SID" value="xxx"/>
<ENTRY name="password">
<![CDATA[{904}0505E5FED797881374FDE8BD1606B6CF01]]>
</ENTRY>
<ENTRY name="JdbcDriver" value="oracle.jdbc.driver.OracleDriver"/>
<ENTRY name="ORACLE_JDBC_TYPE" value="thin"/>
<ENTRY name="DeployPassword" value="true"/>
</ConnectionDefinition>
</BC4JConfig>
and our jclient code to release connection like following:
tabbedPane.addCloseListener(new CloseListener(){
public void closeOperation(MouseEvent e){
cleanTabComponentListener(tabbedPane.getComponentAt(tabbedPane.getOverTabIndex()));
tabbedPane.remove(tabbedPane.getOverTabIndex());
UPanelBinding panelbd = tabbedPane.getPanelBinding();
panelbd.releaseDataControl();
panelbd.getBindingContext().release();
} -
How create a database connection only one for lot of AM
Hi ,
In My Application am having lot of Application module its containing database connection per AM its connecting to same database only if i want to make it unique connction how i can proceed. which is correct way any one can help me
Thanks
PrabeethsoyThe source trace show how the JUApplication was created and saved to BindingContext.
1. private static void invokeBeginRequest(
BindingContext bindingCtx, HashMap requestCtx)
Object obj;
Iterator iter = bindingCtx.valuesIterator();
while (iter.hasNext())
obj = iter.next();
if (obj instanceof DCDataControlManagement)
2.First type is DCDataControlReference ====> ((DCDataControlManagement)obj).beginRequest(requestCtx);
3. ADFBindingFilter chain.doFilter(request, response);
4. DCDataControl control = actionBinding.getDataControl();
5. JUCtrlActionBinding
public final DCDataControl getDataControl()
if (mDataControl == null)
if (getDef() instanceof JUCtrlActionDef )
String name = ((JUCtrlActionDef)getDef()).getDataControlName();
if (name != null && getBindingContainer() != null)
BindingContext ctx = getBindingContainer().getBindingContext();
if (ctx != null)
6. ========>mDataControl = ctx.findDataControl(name);
if (mDataControl == null)
if (getIteratorBinding() != null)
mDataControl = getIteratorBinding().getDataControl();
else if (getBindingContainer() != null)
mDataControl = getBindingContainer().getDataControl();
return mDataControl;
7. BindingContext
public DCDataControl findDataControl(String name)
return (DCDataControl)get(name);
public Object get(Object key)
Object rtn = mDCMap.get(key);
if (rtn == null)
rtn = mBCMap.get(key);
else
if (rtn instanceof DCDataControlReference)
// remove the reference in order to prevent re-entrancy.
remove(key);
*8. Create JUApplicaion======> rtn = ((DCDataControlReference)rtn).getDataControl(this);*
*9. save JUApplication with AM ======> put(key, rtn);*
return rtn;
10. DCDataControlReference
public DCDataControl getDataControl(BindingContext ctx)
String name = getName();
DataControlFactory factory;
try
Class factoryClass = JBOClass.forName(mDef.getFactoryClass());
factory = (DataControlFactory)factoryClass.newInstance();
catch(Exception e)
throw new JboException(e);
// JRS this is a backwards compatibility step. The generic
// DataControlFactoryImpl used to perform this mapping such
// that the bean class will be faulted back the definition class
// if null. I am performing this mapping at RT only in order
// to maintain the DT integrity (i.e. I don't want the DT to start
// faulting the bean class as the definition class when writing the
// DC def).
if (mDef.getBeanClass() == null)
mDef.setBeanClass(mDef.getDefinitionClass());
*11. create JUApplicaion =====> DCDataControl dc = (DCDataControl)factory.createSession(*
ctx, mDef.getName(), mUserParams, mDef);
SessionContext sessionCtx = ctx.getSessionContext();
if (sessionCtx != null)
dc.setSessionContext(sessionCtx);
// fire the deferred beginRequest notication on the new datacontrol
if (mRequestContext != null)
12.======>dc.beginRequest(mRequestContext);
mRequestContext = null;
return dc;
} -
Database Connection Problem on Linux
I have recently installed Oracle Database on a linux server. The app server that accesses db is JBoss.
Always, I end up seeing an error "java.sql.SQLException: No more data to read from socket".
To verify if the problem is with JBoss, I have written a simple stand alone java class to access the db, and ended up with the same error.
Can anybody help me out ??
-Aswin.This error most likely occurs in applications that
use a database connections pool. When the application
checked out a connection that has been timed out or
has been staled, and used it to connect to the
database, this error occurs.
Could also be a result of connection timeout.Yeah! may be it is the result of connection timeout, but I am sure it cannot be realted to connection pool, because to verify if there were any configuration problems on JBoss, we have written a simple java class that directly accesses the database.
If it is because of connection timeout, how do i fix it ?? -
Different database connections
Hi,
I have a problem in an application with two different database connections.
I divided it into three projects one is the model project for a mysql database, one I the model project for an mssql database and one is a jsf project.
But I only can use the first database project I add to the jsf project.
If I use the other SessionFacade he uses the wrong database driver.
My question is, is it possible to access two different databases out of one project?
Thanks,
JohnDoes anyone know how to do this?
I need the same, but i couldn't find any documentation about it.
Looking forward to hearing good news..... -
Database connectivity in struts ( EJB) with Oracle 9
hi,
We are developing a Banking application using Struts & EJB, & I need to use Oracle 9 as a database. Could anyone please let me know, the professional way of connecting this application to the oracle database using Struts and EJB. A good example will help me a lot, so please give me example code also.
Thanks a lot in advance.
RaghavHello,
For keeping the standby database on same HOST....it does seems to be great...i must be on separate box....may be on different network...i believe you would be using it for some failiover purpose...Isn't it.
For Unix it is quite easy..you may implement like this...The Issue which you are referring may be because of wrong Oracle Home or SID....(i'm not very much sure..) You may try following steps:
1. Create a separate Unix A/c and set ORACLE_HOME and ORACLE_SID relevant to your StandBy Database. I believe the Home would be same whereas SID would be your standby databse.
2. Take a Cold Backup of All your database files from Production.
3. Copy these files on separate mount points for standby Db. Put them all to relevant directory and be sure to set the Group of all these files as "SYSDBA" This is Must.
4. And then modify your INIT.ORA file i.e. InitSID.ora file accordingly and put the file in ORACLE_HOME
5. Login to Newly created Unix A/c. Check whether ORACLE_SID is set ot not to your standby database instance.
6. Login to sys as sysdba and start up the database. It will by default would try to check & do for your relevant Oracle SID for this profile...
HTH
Regards,
Kamesh Rastogi -
EJB Timer stops when database connection lost
G'day.
We use EJB Timers quite successfully in stateless session beans under Sun Java System Application Server 8.1 on Windows Server 2003.
We start and stop the timers for specific session beans using public intefaces on their respective beans. This works fine.
The problem we have is when the JDBC connection used by the EJBTimer service is dropped, such as when the remote database / machine falls over or (probably) when the network is lost. All the timers stop working at this point.
The timers do not restart when the database connection is restored either, despite the entries still being in the ejb__timers__tbl table.
If we stop and start the application server instance then they do restart.
We've looked at the setup of the timers but this seems to be pretty straightforward with no options that seem to influence this.
We've tried altering the JDBC connection validation settings but this doesn't seem to have made any difference.
Anyone have any ideas?
Robski!There are no special options to handle this case in the current timer service implementation. Please file an issue describing the scenario here :
https://glassfish.dev.java.net/servlets/ProjectIssues
--ken -
Closing the database connection after report in a server application
I searched these forums and the internet for a definitive answer on asking the Crystal SDK for java to close the jdbc connection after it has generated a report. We have been using the Crystal Report SDK to generate reports within our JEE application, built upon the Spring framework, for the past two years. It works well, especially if you prepare views in the database for your reports.
From what I can tell once you have used ReportClientDocument to create your report you all the close() method to release resources associated with report generation, but this does not close the jdbc database connection.
Further research states that if you are using the CrystalReportViewer you can call the dispose method to close the database connection. We are not using JSP nor this class, so that does us little good.
Finally I found a post that one could call ((AdvancedReportDocument)reportClientDocument.getReportSource()).dispose(). This doesn't drop the connection either.
Each report actually opens 3 connections according to SQL Server. Each report will reuse the connections it has open, so for 50 reports, theoretically, we could have up to 150 connections. We explained to our client those connections remain inactive, however this is unacceptable to our client as they would like to minimize the number of connections left open to their database.
If anyone can post any further information on this issue, it is much appreciated.Yes, another team member found the issue. Quite embarrassing really I didn't see it. I was looking for the answer within Crystal's libraries. It had nothing to do with Crystal.
The developer who wrote the helper code for using Crystal first opened a connection to the datasource for the live production database and read that connection information for the report. Next he set that connection information in the report template's PropertyBag, then ran the report. The developer however forgot to close the connection he used to look up the connection info, leaving a memory leak and using up all the connections.
I'm glad you inquired. I forgot to post the resolution here. -
A database connection in a swing application
hi ,
i am developping an intranet stabdalone swing application based on a jdbc connection to oracle8i data server.
in fact i am interested in keeping my user authentification encrypted while this connection is done! is there any method to do it ! i read about SSL but is it supported by web application ! i have a client-server simple connection !
please help !Hello Levi,
You can to do this form:
String appModule = "yourAppmodule";
String config = "yourAppmodule"+ "Local";
ApplicationModule am = Configuration.createRootApplicationModule(appModule, config);
ConnectionMetada cm = am.getTransaction().getConnectionMetadata();
DriverManager.registerDriver(new OracleDriver());
Connection connection = DriverManager.getConnection(cm.getJdbcURL());You can to see this threads:
Retrieve Database Connection
Getting the Connection object out of ApplicationModule
Regards,
Renan -
Database connection in a WebDynpro Application - urgent
Hi
I am facing a problem with database connection. I am trying to develop a normal webdynpro application.
I want to retrieve data from a table and show it.
But my query is not giving the expected output. It is not even raising errors.
Please give me an answer
Thanks & regards
AparnnaConnection con=null;
Statement st=null;
ResultSet rs=null;
public void wdDoInit()
//@@begin wdDoInit()
try
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection("jdbc:odbc:erdsn","root","enteg123");
st=con.createStatement();
catch(Exception e){
//@@end
public void onActiononClickLogin(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent )
//@@begin onActiononClickLogin(ServerEvent)
String desig=null;
try{
rs = st.executeQuery("select * from Login where Empid like uid and Pword like pw");
if(rs.next()){
desig=rs.getString("Designation");
wdComponentAPI.getComponent().getMessageManager().reportSuccess(desig);
if(desig.equalsIgnoreCase("Employee")){
wdThis.wdFirePlugEmpOutPlug();
else
wdComponentAPI.getComponent().getMessageManager().reportWarning("Invalid input!");
}catch(Exception e){ -
How database connection pooling works in a application
Hi Guys,
I am new to Java and looking into best way of doing J2ee database conectivity. I am using Eclipse galileo3.5 J2EE with Mysql database and Tomcate 6.0.
I am developing an email application where I need to implement MVC model for my webapplication, using jsp for presentation, servlet for control and java beans for model.
I came across two tutorial for database connection pooling as given below.
Eclipse Corner Article: Creating Database Web Applications with Eclipse - In this tutorial connection pooling is configure in Tomcate 6.0
It says Copy and paste the following into your context.xml file (you may have to click on the Source tab at the bottom of the editor to be able to paste). This defines a DataSource with the name "jdbc/SampleDB". Our application will retrieve database connections from the pool using this name.
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="jdbc/SampleDB" auth="Container"
type="javax.sql.DataSource"
username="app" password="app"
driverClassName="org.apache.derby.jdbc.ClientDrive r"
url="jdbc:derby://localhost:1527/sample"
maxActive="8" />
</Context>
Where as in second tutorial - http://www.roseindia.net/answers/viewanswers/2838.html
It uses java bean for connection pooling and then use straight way in JSP and no Servlet used.
conpool.jsp
<%@page import="java.sql.Connection"%>
<jsp:useBean id="pl" class="com.CoreJava.ConnectionPooling"/>
<% Connection con = pl.getConnection(); %>
//do something using con
connectionPooling.java
import com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolD ataSource;
public class ConnectionPooling
static Connection con=null;
public static Connection getConnection()
try
MysqlConnectionPoolDataSource po=new MysqlConnectionPoolDataSource();
po.setServerName("localhost");
po.setPortNumber(3306);
po.setDatabaseName("mydatabase"); //changeur database name
po.setUser("root");//ur username
po.setPassword("");//ur password
con = po.getConnection();
catch(Exception e)
System.out.println("Exception Connection :"+e);
return con;
Please some one explain which is the best way of doing connection pooling to the database by using MVC pattern
Please if some one advise me how to use MVC architecture for simple email application and database connectivty.
Thanks>
>
Where as in second tutorial - http://www.roseindia.net/answers/viewanswers/2838.html
Never EVER use roseindia. It is terrible shit.
[http://balusc.blogspot.com/2008/06/what-is-it-with-roseindia.html]
The correct answer is what you found in the eclipse article. And you can read the Tomcat docs for more.
As per usual the code you have posted from Roseindia is a big pile of rubbish that was written by a complete idiot. I mean the person who wrote it apparently doesn't know much Java at all. Let alone JDBC. Or Connection pools. Or J2EE. It's not the worst I've seen from them but it's pretty bad. -
How to reuse a 9iAS Portal database connection in a BC4J application?
Hi,
I have a 9iAS Portal 9.0.2 application, and I want to call a BC4J/UIX application from the Portal application. Ideally I would like to reuse the database connection already established within Portal, because it has authenticated the user with the SSO, and has all of the Portal and VPD settings already in the environment. I don't want to ask the users to re-log in.
I have looked at the Portal Java PDK and cannot find anything appropriate - has anyone accomplished this, or is there another way of doing this?
Thanks,
SteveBC4J supports JAAS authentication.. look at the jazn stuff. When u deploy your application on 9ias one of the pages in the wizard asks what kind of authenticatoin you would like to use, you might be able to set something up there...
Also you an secure the URL in the httpd.conf file so that if a user directly attemps to access that application they are presented with the SSO log in screen. -
Issue in creating Database Connection to HFM Application through workspace
Hi,
This is a fresh installation. We are trying to create a new database connection in workspace for HFM Application.
When i click on the Application selection icon, it gives me the below error message,
*"Error connecting to database connection nasbyphyp03: Error: Error getting CSS support information for driver* HsvAdmDriver*".*
I tried re-installing the HsvAdmDriver, but still the problem persists. (nasbyphyp03 is the server name)
But, i am able to access HFM Application from workspace and smartview.
Please advice.
Thanks,
SivaCan anyone suggest me the solution ???
We are struck with this and unable to process any Reports
Thanks,
Siva
Maybe you are looking for
-
Hi! i have generate a report in pdf format which has hyperlink i have set that using srw.set_hyperlink. when i move cursor to that hyperlink. it shows target address. how can this remove. i want to show my own text. thanx
-
PR Release Strategies - Item Value & PR Value
I have this requirement from user. For marketing department, they want to release PR base on total PR value whereas Supply Chain want to release by item level. I have created 2 classes and the only different is the characteristic whether to use PR va
-
How to put a dictionary field into an existing Search Help by calling FM
Hi All I'm facing a problem when using an existing search help in a screen input field. I'm not directly mentioning search help to that screen field. Instead of this i'm calling Function Module F4IF_FIELD_VALUE_REQUEST like lv_tabname = 'Z_FB
-
Hello guys, I have heard recently that I should from time to time (maybe once every two weeks) zapp the Boot drive by pressing and holding apple/option/p/r keys. It apparently organizes the files and make Mac to run smoother and faster (kind of de-fr
-
i am sick of this