3

We are creating an XPages application with an MySQL backend. Application will be used by several customers. Each has their own NSF database and a corresponding MySQL database. Each customer will have their own MySQL username. We are using the Extension Library JDBC components (ConnectionManager).

We were planning to store the username and password in a NotesDocument. This way the NSF's design can be easily updated from NTF template without affecting this data. However, the ConnectionManager component and @GetJdbcConnection SSJS function both read the username, password and other connection info from a file stored in WEB-INF/jdbc folder. Files stored there will be overwritten when the NSF design is updated, thus losing the customer-specific information.

There seems to be no way of making these files dynamic (WEB-INF is by specification read-only) or to include dynamic elements inside them (see my previous question).

We could use a dynamic JDBC URL in the ConnectionManager, however the ExtLib book warns against this practice. It seems that we then lose the connection pooling. And besides, the @GetJdbcConnection function does not accept JDBC URLS.

So, what is the best way of storing NSF-specific JDBC connection information?

EDIT: SOLVED

I created a subclass of the jdbcConnectionManager component. The procedure is detailed here: http://lazynotesguy.net/blog/2013/08/09/subclassing-an-extlib-component/

Community
  • 1
  • 1
Lauri Laanti
  • 948
  • 7
  • 11

1 Answers1

0

Best is to subclass the Extlib classes. Since the extlib source is provided it should be not too hard. The other option is to use the version control system to maintain branches per customer that only differ in that config file

stwissel
  • 20,110
  • 6
  • 54
  • 101