Hello,

in my avalon component I'am retrieving a datasource object and from that I'am getting a connection object. My component has several methods and some of them are communicating together. Like the following:

public Object methodA() {

  // Here connection will be used...
  return new Object();
}

public void methodB() {

  // Here connection will be used...
  this.methodA();
}

....

So how to share connections between the methods?

The first (bad) idea is to create a new Connection each time a new Method is started:

public void method() {

  try {
     Connection con = this.datasource.getConnection();
     ...
  } catch(SQLException ex) {
     // Do something
  } finally {
     con.close();
  }
}

Another idea is to implement the interfaces Initializable and Recyclable and creating in method initialize() the connection and returning it back to the pool in recycle(). What do you think about that?

But there is one problem: What happens if an exception occures which was not catched? Like a ParameterException or a NullPointer? How to return the connection clear back to the pool?

Is there a best practice way?

Thank you!

Regards
Stephan




--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to