Form won't maximize after database connection
I've been having a very frustrating (and time consuming) issue with the application I am trying to develop. I've had NO success on other forums so hopefully Microsoft's site can answer this.
I have broken it down to this for simplicity's sake.
I have a form with its WindowState property set to "maximized" at design time. That's it. I have ONE sub:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Works perfect. Run it and its maximized to the ENTIRE screen.
The issue starts after I make a connection to an Access database. like this:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim conn As New System.Data.OleDb.OleDbConnection
conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=U:\Visual Studio .NET 2003\My Projects\Schedule Board\MachineDepartments.accdb;Persist Security Info=False"
conn.Open()
conn.Close()
End Sub
Same sub, just added a connection string that DOES WORK with no issues.
NOW when the app runs, the window is not "maximized". It takes up about 3/4 of the total screen. I can click on THE FORM'S maximize button and it will resize to my entire screen (like it did BEFORE I added the connection string).
I cannot however resize it programmatically. I have tried no less than a dozen different suggestions from the obvious to the ridiculous.
Something deeper is happening that won't allow the form to resize to the actual screen dimensions and its related to making the database connection.
(just for ha ha's I created a click event sub that made the db connection AFTER the form loaded. The form loaded to the proper FULL SCREEN size but as soon as fired the click event the screen went to 3/4 size! MADDENING!)
Please help! (I am using VB.Net 2003 so please keep that in mind)
Thanks!
Try moving your connection to the database to the Shown
event instead. When exceptions, or anything irregular happens in the Load
event, weirdness will almost always ensue and even the debugger will not always pick it up. It has to do with the order and the manner in which
Load gets called.
It would be greatly appreciated if you would mark any helpful entries as helpful and if the entry answers your question, please mark it with the Answer link.
Be aware that is for C#, not for VB with Windows Forms,
But because of the fact that this is a non program language related forum it is in my perception a helpful addition.
Success
Cor
Similar Messages
-
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();
} -
I receive REP-0501: Unable to connect to specified database. I run developer 6i application on windows 2008 r2. I have applied the nn60.dll and nnb60.dll files to the \BIN directory. The forms are working fine. The reports will only display after the correct user id (username, password and database connection string) is supplied. This is happening to all attempts to open already complied form. Pls, help.
If you are connecting to an Oracle 11g database, remember that by default the passwords are case sensitive. To disable that, run
ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = FALSE; -
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. -
How to correct close database connection after report generation
Hello
I have problem a with alive database connection after report creation and report closing. How to properly to close connection to database?
Best regards
Edited by: punkers84 on Jun 17, 2011 10:38 AMthat's what I am doing... after viewing the report, I call the close method on the window closing event of the container window. but the connection is still open. I had a lot of other issues with my jdbc driver but after downgrading to an older version those issues are resolved.Only this one is still there! Is there any other way to close the connection (like using dbcontroller or etc.)?
-
Use of oledb database connection in input form of process
I've created dynamic pdf form with data connection to mssql database and with script that automatically adds rows to table and fills fields.
When I try to open this form as input form for my process in workspace it generates an error: Unable to create SOM expression. That means that sql database connection works not properly.
How can I fix this? Is it possible to use data connection to oledb database in the input form?Hi,
I have a form that includes db connection (OLDB ->Access). But in
workspace I have an error while initiating it. The error is an Adobe Acrobat message;
"Unable to create SOM expression $record.tablename.fieldname"
I am using Acrobat 9 pro ext. and when I use reader then there is no problem.
I removed enhanced security settings in preferences of Acrobat. What else i can do? Any suggestions?
Thank in advance.. -
Unable to open database connection after applicaiton is running for several days.
Has anyone experienced a similar error to this:
After about 3 days of use our application starts to report errors opening
the database connection. By that time we've had thousands of transactions
happen. Oracle is only showing a few open connections to our iAS host so
the error seems to indicate the connection pool. I'm configured for 64
connections (the default). We are using the Oracle native driver on iAS
SP3, Solaris.
The iAS ksvradmin monitor gives errors when trying to see how many open
connections it has (verified bug in SP3), so I can't get any info from iAS
on the connection pool.
Thanks in advance,
Rodger Ball
Sr. Engineer
Business WireiAS6 SP3 and earlier cannot detect dead connections. If connections become
stale, iAS does not detect this and will hand out these stale connections.
I don't know enough about your problem, but you can check for this.
hope this helps,
-James
"Rodger Ball" <[email protected]> wrote in message
news:9suucb$[email protected]..
Has anyone experienced a similar error to this:
After about 3 days of use our application starts to report errors opening
the database connection. By that time we've had thousands of transactions
happen. Oracle is only showing a few open connections to our iAS host so
the error seems to indicate the connection pool. I'm configured for 64
connections (the default). We are using the Oracle native driver on iAS
SP3, Solaris.
The iAS ksvradmin monitor gives errors when trying to see how many open
connections it has (verified bug in SP3), so I can't get any info from iAS
on the connection pool.
Thanks in advance,
Rodger Ball
Sr. Engineer
Business Wire -
Database connection remains open after close being called
I am using oracle OC4J as my application server. I am not using connection pool and I am using non-pooled datasource to get connection. The database connection is made at runtime and then closed. I want to test if the users' connection sessions have been killed after they logout the application. But when I checked the table v$session in the database, it shows one connection remaining. I checked my program, the close method has been called. Does anybody know the solution?
Hi Chen,
This is just a suggestion for something to try -- only if you haven't
already tried it, that is!
Try running OC4J in "debug" mode. Here are details on how to do that:
http://kb.atlassian.com/content/atlassian/howto/orionproperties.jsp
Hope this helps you!
Good Luck,
Avi. -
How to use Forms Default Database Connection in java class
When a form based application is started, a connection is made with underlying database. This is the Default (Primay) Database Connection.
The problem is I have some of my business logic implemented in a java class. In this class I have to make a another connection with the same database. What I want to do is to use the original Database Connection in the java class. In this I may avoid the overhead of reconnection.
Could anyone pls guide me in this way...you can't share the forms connection. Sorry :(
-
Multiple DataBase Connection in a Single Form
hi all
Is it Possible to have Multiple Database Connection With a Single Form
Block a : Retriving data from a database Service a/Schema A.
Block b : Retriving data from a Remote Database Service b / Schema B.
If yes how to do this.
regards
jai
email:[email protected]Sure you can access a database this way,
but can you base a block on this database connect? No you can't.
Frank -
Using database connection in a servlet and get errors after 8 hours
Hey,
I'm running a poker script using applet/servlets and it works great. But for some reason about about 8 hours that database layer stops working. At first I thought it was the connections to mySQL that were timing out (because im using connection pooling) but after turning pooling off (I now create the connection each time) I'm still seeing that same error (I can create a connection but when I do an action ex. like a select statment I get an error). What i'm wondering could it be that the driver I load with Class.forName() some how unloads it's self after x amount of time not being used? Not sure if that is it but if anyone could give me some insight that would be great. The Error i recieve is below:
INFO: Database Event:DatabaseController: Error executing database query.
ERROR: Communications link failure due to underlying exception:
** BEGIN NESTED EXCEPTION **
java.net.SocketException
MESSAGE: Software caused connection abort: recv failed
STACKTRACE:
java.net.SocketException: Software caused connection abort: recv failed
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(Unknown Source)
at com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:104)
at com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:144)
at com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:172)
at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1839)
at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2288)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2784)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1531)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1622)
at com.mysql.jdbc.Connection.execSQL(Connection.java:2370)
at com.mysql.jdbc.Connection.execSQL(Connection.java:2297)
at com.mysql.jdbc.Statement.executeQuery(Statement.java:1183)
at com.softnet.database.DatabaseController.executeDatabaseQuery(DatabaseController.java:190)
at com.softnet.games.GameServer.validateUser(GameServer.java:438)
at com.softnet.games.GameServer.handleData(GameServer.java:113)
at com.softnet.network.HttpConnectionThread.run(HttpServletListener.java:191)
** END NESTED EXCEPTION **
I know the query is good because it works all other times just not after about 8 hours.
--Z3r0CooLHey,
Thanks for the responces. For the connection pooling I would open 5 connections and keep them open. So i though maybe after 8 hours after not being used they would timeout. Thats why i turned off conection pooling and create a new connection each time. Anyways i'll post the code below incase i made a mistake somewhere.
package com.softnet.database;
/************************ DatabaseControler **************************/
import java.sql.*;
import java.util.*;
import com.softnet.database.DatabaseConnectionPool;
import com.softnet.database.DatabaseSettings;
public class DatabaseController
implements DatabaseListener
//Used to make sure the database driver is loaded
private boolean databaseDriverState = false;
//Used to store a database connection
private Connection databaseConnection = null;
//If to user connection pooling or not
private boolean useConnectionPooling = false;
//Used to hold the connection pool varible
private DatabaseConnectionPool connectionPool = null;
//Used to store database settings
private DatabaseSettings databaseSettings;
//Used to hold the DatabaseController listeners
private List databaseControllerListeners = new ArrayList();
//min number of connections for connection pool
private int minNumberOfConnections = 1;
//max number of connections for connection pool -1 is unlimited
private int maxNumberOfConnections = -1;
//DatabaseController Constructors
public DatabaseController(DatabaseSettings databaseSettings)
this.databaseSettings = databaseSettings;
databaseDriverState = loadDatabaseDriver(databaseSettings.getDatabaseDriver());
public DatabaseController(DatabaseSettings databaseSettings, boolean useConnectionPooling, int minNumberOfConnections, int maxNumberOfConnections)
this.databaseSettings = databaseSettings;
this.useConnectionPooling = useConnectionPooling;
this.minNumberOfConnections = minNumberOfConnections;
this.maxNumberOfConnections = maxNumberOfConnections;
if(useConnectionPooling == true)
connectionPool = new DatabaseConnectionPool(databaseSettings, minNumberOfConnections, maxNumberOfConnections);
connectionPool.addDatabaseListener(this);
else
databaseDriverState = loadDatabaseDriver(databaseSettings.getDatabaseDriver());
public DatabaseController() {}
//Database Settings Get/Set
public DatabaseSettings getDatabaseSettings()
return databaseSettings;
public void setDatabaseSettings(DatabaseSettings databaseSettings)
this.databaseSettings = databaseSettings;
//Connection Pooling Get/Set
public boolean getConnectionPooling()
return useConnectionPooling;
public void setConnectionPooling(boolean useConnectionPooling, int minNumberOfConnections, int maxNumberOfConnections)
this.useConnectionPooling = useConnectionPooling;
this.minNumberOfConnections = minNumberOfConnections;
this.maxNumberOfConnections = maxNumberOfConnections;
if(useConnectionPooling == true)
if(connectionPool == null)
connectionPool = new DatabaseConnectionPool(databaseSettings, minNumberOfConnections, maxNumberOfConnections);
connectionPool.addDatabaseListener(this);
else
if(connectionPool != null)
connectionPool.destroyConnections();
connectionPool.removeDatabaseListener(this);
connectionPool = null;
//Return if there connected
public boolean isConnected()
boolean isConnected;
if(databaseConnection != null)
isConnected = true;
else
isConnected = false;
return isConnected;
//Used to connect to database or get a connection for the connection pool
public void connect()
if(databaseDriverState == false)
databaseDriverState = loadDatabaseDriver(databaseSettings.getDatabaseDriver());
//If we dont have a current connection, make one
if(databaseConnection == null && databaseDriverState == true)
if(useConnectionPooling == false)
try
databaseConnection = DriverManager.getConnection(databaseSettings.getDatabaseURL(), databaseSettings.getUserName(), databaseSettings.getUserPassword());
catch (SQLException sqle)
//Raise event
raiseDatabaseEvent("DatabaseController: Error connecting to database. \nERROR: " + sqle.getMessage());
databaseConnection = null;
else
databaseConnection = connectionPool.getConnection();
//Used to disconnect from the database or give back the connection to the connection pool
public void disconnect()
if(databaseConnection != null)
if(useConnectionPooling == false)
try
//Close DB Connection
databaseConnection.close();
catch(SQLException ignore) {}
finally
databaseConnection = null;
else
connectionPool.returnConnection(databaseConnection);
databaseConnection = null;
public ResultSet executeDatabaseQuery(String sSQL)
ResultSet databaseResult = null;
if(databaseConnection != null)
try
Statement databaseStatement = databaseConnection.createStatement();
databaseResult = databaseStatement.executeQuery(sSQL);
catch(SQLException sqle)
//Raise event
raiseDatabaseEvent("DatabaseController: Error executing database query.\nSQL: " + sSQL + "\nERROR: " + sqle.getMessage());
return databaseResult;
public int executeDatabaseUpdate(String sSQL)
int rowsAffected = -1;
if(databaseConnection != null)
try
Statement databaseStatement = databaseConnection.createStatement();
rowsAffected = databaseStatement.executeUpdate(sSQL);
catch(SQLException sqle)
//Raise event
raiseDatabaseEvent("DatabaseController: Error executing database update.\nSQL: " + sSQL + "\nERROR: " + sqle.getMessage());
return rowsAffected;
//Used to load the Database Driver
private boolean loadDatabaseDriver(String databaseDriver)
boolean driverLoaded;
if(databaseDriver.equals("") == false)
try
//Load Database Driver
Class.forName(databaseDriver).newInstance();
driverLoaded = true;
catch (Exception e)
//Raise event
raiseDatabaseEvent("DatabaseController: Error loading database driver. \nERROR: " + e.getMessage());
driverLoaded = false;
else
driverLoaded = false;
return driverLoaded;
//Wrap the DatabaseConnectionPool Error to the DatabaseController
public void databaseEventOccurred(DatabaseEvent de)
raiseDatabaseEvent(de.getErrorMessage());
//Event Handling Code
//Used to add database listeners (Its sync'd so you can change the listeners when firing an event)
public synchronized void addDatabaseListener(DatabaseListener databaseControllerListener)
databaseControllerListeners.add(databaseControllerListener);
//Used to remove a listener from the list (Its sync'd so you can change the listeners when firing an event)
public synchronized void removeDatabaseListener(DatabaseListener databaseControllerListener)
databaseControllerListeners.remove(databaseControllerListener);
//Used to send the raise event to the listeners
private synchronized void raiseDatabaseEvent(String databaseError)
DatabaseEvent databaseEvent = new DatabaseEvent(this, databaseError);
Iterator listeners = databaseControllerListeners.iterator();
while(listeners.hasNext())
DatabaseListener listener = (DatabaseListener) listeners.next();
listener.databaseEventOccurred(databaseEvent);
/********************* DatabaseConnectionPool **************/
package com.softnet.database;
import java.io.*;
import java.sql.*;
import java.util.*;
import com.softnet.database.*;
import com.softnet.database.DatabaseSettings;
public class DatabaseConnectionPool
//min number of connections
private int minNumberOfConnections = 1;
//max number of connections -1 is unlimited
private int maxNumberOfConnections = -1;
//Store the connections
protected Hashtable databaseConnections = null;
//Database Info
protected DatabaseSettings databaseSettings;
//to hold Driver state
private boolean databaseDriverState = false;
//To hold connection checker
private DatabaseConnectionCheck connectionChecker = null;
//Used to hold the DatabaseConnectionPool listeners
private List databaseConnectionPoolListeners = new ArrayList();
public DatabaseConnectionPool(DatabaseSettings databaseSettings, int minNumberOfConnections, int maxNumberOfConnections)
this.databaseSettings = databaseSettings;
this.minNumberOfConnections = minNumberOfConnections;
this.maxNumberOfConnections = maxNumberOfConnections;
//Load Driver
databaseDriverState = loadDatabaseDriver(databaseSettings.getDatabaseDriver());
//Create connection
createConnections();
public DatabaseConnectionPool(int minNumberOfConnections, int maxNumberOfConnections)
this.minNumberOfConnections = minNumberOfConnections;
this.maxNumberOfConnections = maxNumberOfConnections;
//Database Settings Get/Set
public DatabaseSettings getDatabaseSettings()
return databaseSettings;
public void setDatabaseSettings(DatabaseSettings databaseSettings)
this.databaseSettings = databaseSettings;
//Driver State Get
public boolean getDatabaseDriverState()
return databaseDriverState;
public void createConnections()
if(databaseDriverState == false)
databaseDriverState = loadDatabaseDriver(databaseSettings.getDatabaseDriver());
//Create all connections and load the minimum in the Hashtable
if(databaseConnections == null)
if(databaseDriverState == true && minNumberOfConnections != 0)
databaseConnections = new Hashtable();
for(int i = 0; i < minNumberOfConnections; i++)
try
databaseConnections.put(DriverManager.getConnection(databaseSettings.getDatabaseURL(), databaseSettings.getUserName(), databaseSettings.getUserPassword()), Boolean.FALSE);
catch(SQLException sqle)
//Problem break loop and destroy any connections
destroyConnections();
//Raise event
raiseDatabaseEvent("DatabaseConnectionPool: Error creating database connections. \nERROR: " + sqle.getMessage());
break;
//If no connection check exists create one
if(connectionChecker == null)
connectionChecker = new DatabaseConnectionCheck(this);
connectionChecker.start();
public Connection getConnection()
Connection connection = null;
boolean errorWithConnection = false;
Enumeration connections = databaseConnections.keys();
synchronized (databaseConnections)
while(connections.hasMoreElements())
errorWithConnection = false;
connection = (Connection) connections.nextElement();
Boolean state = (Boolean) databaseConnections.get(connection);
//If connection is not used, use it.
if(state == Boolean.FALSE)
try
connection.setAutoCommit(true);
catch(SQLException e)
//Problem with connection remove connection and replace it
databaseConnections.remove(connection);
try
connection = DriverManager.getConnection(databaseSettings.getDatabaseURL(), databaseSettings.getUserName(), databaseSettings.getUserPassword());
catch(SQLException sqle)
errorWithConnection = true;
if(errorWithConnection == false)
// Update the Hashtable to show this one's taken
databaseConnections.put(connection, Boolean.TRUE);
// Return the connection
return connection;
//All connections being used check to max to see if we can make a new one
if(maxNumberOfConnections == -1 || maxNumberOfConnections > databaseConnections.size())
try
connection = DriverManager.getConnection(databaseSettings.getDatabaseURL(), databaseSettings.getUserName(), databaseSettings.getUserPassword());
catch(SQLException sqle)
errorWithConnection = true;
if(errorWithConnection == false)
databaseConnections.put(connection, Boolean.TRUE);
return connection;
//If not connections free and max connections reached wait for a free connection
return getConnection();
public void returnConnection(Connection connection)
boolean errorWithConnection = false;
//Make sure connection still works
try
connection.setAutoCommit(true);
catch(SQLException e)
//Problem with connection remove connection and replace it
databaseConnections.remove(connection);
try
connection = DriverManager.getConnection(databaseSettings.getDatabaseURL(), databaseSettings.getUserName(), databaseSettings.getUserPassword());
catch(SQLException sqle)
errorWithConnection = true;
if(errorWithConnection == false)
databaseConnections.put(connection, Boolean.FALSE);
public void destroyConnections()
Connection connection = null;
if(databaseConnections != null)
//Close all connections
Enumeration connections = databaseConnections.keys();
while (connections.hasMoreElements())
connection = (Connection) connections.nextElement();
try
connection.close();
catch(SQLException ignore) {}
//Free up hashtable
databaseConnections = null;
private boolean loadDatabaseDriver(String databaseDriver)
boolean driverLoaded;
if(databaseDriver.equals("") == false)
try
//Load Database Driver
Class.forName(databaseDriver);
driverLoaded = true;
catch (ClassNotFoundException cnfe)
//Raise event
raiseDatabaseEvent("DatabaseController: Error loading database driver. \nERROR: " + cnfe.getMessage());
driverLoaded = false;
else
driverLoaded = false;
return driverLoaded;
//Event Handling Code
//Used to add database listeners (Its sync'd so you can change the listeners when firing an event)
public synchronized void addDatabaseListener(DatabaseListener databaseConnectionPoolListener)
databaseConnectionPoolListeners.add(databaseConnectionPoolListener);
//Used to remove a listener from the list (Its sync'd so you can change the listeners when firing an event)
public synchronized void removeDatabaseListener(DatabaseListener databaseConnectionPoolListener)
databaseConnectionPoolListeners.remove(databaseConnectionPoolListener);
//Used to send the raise event to the listeners
private synchronized void raiseDatabaseEvent(String databaseError)
DatabaseEvent databaseEvent = new DatabaseEvent(this, databaseError);
Iterator listeners = databaseConnectionPoolListeners.iterator();
while(listeners.hasNext())
DatabaseListener listener = (DatabaseListener) listeners.next();
listener.databaseEventOccurred(databaseEvent);
class DatabaseConnectionCheck extends Thread
private DatabaseConnectionPool connectionPool;
DatabaseConnectionCheck(DatabaseConnectionPool connectionPool)
this.connectionPool = connectionPool;
public void run()
try
while(true)
//check threads every 30 seconds
this.sleep(300000);
if(connectionPool.databaseConnections != null)
Connection connection = null;
Enumeration connections = connectionPool.databaseConnections.keys();
synchronized (connectionPool.databaseConnections)
while(connections.hasMoreElements())
connection = (Connection) connections.nextElement();
Boolean state = (Boolean) connectionPool.databaseConnections.get(connection);
//If connection is not used, use it.
if(state == Boolean.FALSE)
try
connection.setAutoCommit(true);
catch(SQLException e)
//Problem with connection remove connection and replace it
connectionPool.databaseConnections.remove(connection);
try
connection = DriverManager.getConnection(connectionPool.databaseSettings.getDatabaseURL(), connectionPool.databaseSettings.getUserName(), connectionPool.databaseSettings.getUserPassword());
catch(SQLException sqle)
connection = null;
// Update the Hashtable with new connection if its not null
if(connection != null)
connectionPool.databaseConnections.put(connection, Boolean.FALSE);
catch(InterruptedException ignored) {}
Basicly the why it works is the connection pool hold the database connections. When the user needs a connection they use the database controller to request a connection (By create a instance and called the connect() method) and the connection is either created or grabed from the connection pool. After the user is done with the connection they call the disconnect() method which closes the connection or returns it to the connection pool.
--Z3r0CooL -
OIM 11g: Error After starting OIM server :retrieving database connection
Hi All,
After patching OIM 11.1.1.5.0 to BP02 I am getting following error in logs of OIM and not able to see Import Deployment Manager File and..continuously this error bounce back
Error
<Error> <XELLERATE.DATABASE> <BEA-000000> <Class/Method: DBPoolManager/getConnection/Exception encounter some problems: Error while retrieving database connection.Please check for the following
Database srever is up.
DirectDB settings in configuration file are correct.>
<Mar 16, 2012 6:50:31 AM EDT> <Error> <XELLERATE.DATABASE> <BEA-000000> <Class/Method: DirectDB/getConnection encounter some problems: Error while retrieving database connection.Please check for the follwoing
Database srever is running.
Datasource configuration settings are correct.
java.sql.SQLException: java.sql.SQLException: Exception occurred while getting connection: oracle.ucp.UniversalConnectionPoolException: Cannot get Connection from Datasource: java.sql.SQLRecoverableException: IO Error: The Network Adapter could not establish the connection
at com.thortech.xl.util.DirectDB$DBPoolManager.getConnection(DirectDB.java:441)
at com.thortech.xl.util.DirectDB.getConnection(DirectDB.java:176)
at com.thortech.xl.dataobj.util.ADPClassWatchDog.getMaxUpdateTimestamp(ADPClassWatchDog.java:50)
at com.thortech.xl.dataobj.util.ADPClassWatchDog.run(ADPClassWatchDog.java:145)
>
<Mar 16, 2012 6:50:31 AM EDT> <Error> <XELLERATE.ADAPTERS> <BEA-000000> <ADPClassWatchDog: Error occured while getting the max adp_update timestamp>
Earlier before patching to BP02 in weblogic Datasources we have
Driver Class Name: oracle.jdbc.xa.client.OracleXADataSource
But when I was providing this value in weblogic.profile during patching attribute name "operationsDB.driver=oracle.jdbc.xa.client.OracleXADataSource ", I am getting this error
/data/oim/Oracle/Middleware/Oracle_IDM1/server/setup/deploy-files/setup.xml:204: java.lang.ClassCastException: oracle.jdbc.xa.client.OracleXADataSource cannot be cast to java.sql.Driver
So I changed this value to "operationsDB.driver=oracle.jdbc.OracleDriver" and it runs fine. Patch completed successfully.
Is there any issue with this Driver Class Name mismatch, so I am getting this error? I have also tried for all Datasources same Driver Class Name but invain.
Regards,
AmitHi Bikash,
Nothing is changed between network/firewall. From Database machine I am able to see tnsping running fine. From weblogic admin console I have checked the connectivity of different datasource is successfull. Right now I have these datasources, all have Driver Class Name=oracle.jdbc.OracleDriver.
EDNDataSource
EDNLocalTxDataSource
mds-oim
mds-owsm
mds-soa
oimJMSStoreDS
oimOperationsDB
OraSDPMDataSource
SOADataSource
SOALocalTxDataSource
You mean For all the datasources I need to make it oracle.jdbc.xa.client.OracleXADataSource. I make it this also but no success.
Also tell me..Summary of Security Realms >myrealm >Providers >OIMAuthenticationProvider here also I need to provide Xadatasource Driver name. -
Connect Oracle Form Builder 10g to Oracle Database 10g Express
Hi,
I'm new to Oracle.
I've installed both form builder and database 10g express.
I tried to connect form builder to HR sample database in 10g express with the following:
user name: hr
password: hr
database: hr
but I received message: ora-12154: tns could not resolve the connect identifier specified.
Can anyone help me on that? Do I need to change the tnsnames.ora?
If yes, what should I need to change in order to connect to the HR sample?
Thank you.Yes you need to have an entry in the tnsnames.ora file for you database service name or sid. The service name or sid is usually XE unless you changed it when you installed 10g express.
-
Help with Database Connected LiveCycle ES4 form
Hello and thanks for taking the time to read this question, I hope you can help!
I have a LiveCycle ES 4 form connected to an excel database. The form has buttons to "Add", "Update" or "Find" a record. These buttons all work correctly EXCEPT when the server drive that has the Excel file is not available. In this case I wanted to add code the "Add" button informing the user that there is an error. I tried adding a try/catch block before the SQL statement that inserts a record into excel but even when I purposely make the Excel file unavailable the try/catch block doesn't seem to work. The javascript console will show an error but try/catch doesn't seem to trigger. If I had a javascript syntax error within the try/catch block, it works as expected, but with the database connected form, it appears the try/catch block does not trigger based on errors generated as a result of the database file having an issue. In this case, the console just shows a "GeneralError: Operation failed." message. Why doesn't the try/catch block trigger since there is an error as stated on the console? Is there a work around? Thanks again for your help!!Hello and thanks for taking the time to read this question, I hope you can help!
I have a LiveCycle ES 4 form connected to an excel database. The form has buttons to "Add", "Update" or "Find" a record. These buttons all work correctly EXCEPT when the server drive that has the Excel file is not available. In this case I wanted to add code the "Add" button informing the user that there is an error. I tried adding a try/catch block before the SQL statement that inserts a record into excel but even when I purposely make the Excel file unavailable the try/catch block doesn't seem to work. The javascript console will show an error but try/catch doesn't seem to trigger. If I had a javascript syntax error within the try/catch block, it works as expected, but with the database connected form, it appears the try/catch block does not trigger based on errors generated as a result of the database file having an issue. In this case, the console just shows a "GeneralError: Operation failed." message. Why doesn't the try/catch block trigger since there is an error as stated on the console? Is there a work around? Thanks again for your help!! -
[Bug] Or feature? Database connection closed if given a name after first op
I am not sure if this is a bug or a feature.
oracle.javatools.db.Database db = oracle.javatools.db.DatabaseFactory.findOrCreateDatabase("sample", conn);
If I supply a name for the database as the above line using "sample", the database connection is closed after the first op, i.e., you can call
db.listObjects once, but the second time, it will fail with StackOverFlowException. But the culprit is the database connection is closed after the first op.
However, if I don't give it a name, using null,
oracle.javatools.db.Database db = oracle.javatools.db.DatabaseFactory.findOrCreateDatabase(null, conn);
There's no problem at all.
Is this a bug or a feature?
If a feature, the JavaDoc made it worse, by using the following example:
http://www.oracle.com/technology/products/jdev/esdk/api1013/oracle/javatools/db/DatabaseFactory.html
The DatabaseFactory should be used over the DBObjectProviderFactory when a Database specifically is required, and the name and Connection of that Database are available.
e.g.
java.sql.Connection conn = // the Connection to the db
DatabaseFactory.findOrCreateDatabase( "ora10g", conn );
The example sure sounds like a name is mandatory. Or perhaps the name is not some random name, but TNSName? If so, the Doc should certainly mention that.I am not sure if this is a bug or a feature.
oracle.javatools.db.Database db = oracle.javatools.db.DatabaseFactory.findOrCreateDatabase("sample", conn);
If I supply a name for the database as the above line using "sample", the database connection is closed after the first op, i.e., you can call
db.listObjects once, but the second time, it will fail with StackOverFlowException. But the culprit is the database connection is closed after the first op.
However, if I don't give it a name, using null,
oracle.javatools.db.Database db = oracle.javatools.db.DatabaseFactory.findOrCreateDatabase(null, conn);
There's no problem at all.
Is this a bug or a feature?
If a feature, the JavaDoc made it worse, by using the following example:
http://www.oracle.com/technology/products/jdev/esdk/api1013/oracle/javatools/db/DatabaseFactory.html
The DatabaseFactory should be used over the DBObjectProviderFactory when a Database specifically is required, and the name and Connection of that Database are available.
e.g.
java.sql.Connection conn = // the Connection to the db
DatabaseFactory.findOrCreateDatabase( "ora10g", conn );
The example sure sounds like a name is mandatory. Or perhaps the name is not some random name, but TNSName? If so, the Doc should certainly mention that.
Maybe you are looking for
-
How to Read a CSV file using pure PL/SQL
Hi friends - Is there a possibility to read a .TXT/CSV file from a local machine and display the contents on the form fields each record at one time. The logic to flow through the records can be build, but the problem is where to begin from to start
-
Lightning to 30-pin Adapter not work properly with iPhone 5s
Lightning to 30-pin Adapter (0.2 m) with iPhone 5s working good with power adapter and 30-pin cable, but how iPhone at 100% power, I see message "This accessories is not working correctly". But with iPad mini 1 everything is OK.
-
What is the best solution to trigger background jobs within user exits? Currently the method I am using is quite cumbersome. 1. Create user event in SM62 2. Create background job attached to this user event. 3. Within user exit call function module B
-
Change account receivable account in a business partner
hello We have a series of customers with transactions posted to the wrong account. Do you know if there is a way to change the account receivables account ? We are ready to cancel all documents and reenter them but when we do this, it still blocks th
-
Performance Tuning: Http Task Time Response Time Threshold
I must analyze the response time of HTTP task on my instance and I found any value from tcode ST03. For HTTP task with my user I have these values: N. Step T resp.time A. Resp.Time T. DB Time A. DB Time 3405 3072 902,1