Hi René,

I have found a solution for my problems:

In the JavaMonitor I have configured two applications with the same binaries. The only difference is a VM parameter -Dconfigfile=foo.config in the first application and the parameter -Dconfigfile=bar.config in the other application.

With these parameters I can use different database configurations, which are stored into the configuration files.

In the Application class I can use

FileInputStream fs = new FileInputStream(System.getProperty("user.dir") + System.getProperty("file.separator") + System.getProperty("configfile"));
Properties p = new Properties();
p.load(fs);

to get the database credentials. According to your post, in the model I have removed all connections, this will result in an Exception, if I access an EOEditingContext (i.e. within a Session). To prevent that, I set the connection within the Application class, before any access to the database.

EOModel model = EOModelGroup.defaultGroup().modelNamed("MyModelName");
EODatabaseContext dc = EODatabaseContext.registeredDatabaseContextForModel(model, new EOEditingContext());
EOAdaptor da = dc.adaptorContext().adaptor();

The database credentials I can store into an NSMutableDictionary:

NSMutableDictionary cred = new NSMutableDictionary();
cred.takeValueForKey(p.getProperty("username"), "username");
cred.takeValueForKey(p.getProperty("password"), "password");
cred.takeValueForKey(p.getProperty("url"), "URL");
cred.takeValueForKey(p.getProperty("driver"), "driver");

Then I set the new ConnectionDictionary for the EOAdapter and EOModel:

da.setConnectionDictionary(cred);
model.setConnectionDictionary(cred);

This works also for all other EOEditingContext instances within the application, I don't have to switch the connection for every new EC instance.

Some ideas I got from https://stackoverflow.com/questions/13459208 and http://mirror.informatimago.com/next/developer.apple.com/documentation/WebObjects/Enterprise_Objects/Connecting/chapter_10_section_8.html#//apple_ref/doc/uid/TP30001011-DontLinkChapterID_6-TPXREF144

Best regards
André


Am 2017-11-06 17:05, schrieb René Bock:
Hi André

we don't store database connection infos in the eo-model. Instead we follow:

https://wiki.wocommunity.org/display/documentation/Best+Practices-Properties+Files

e.g:

dbConnectURLGLOBAL=jdbc:mysql://localhost/DbName
dbConnectUserGLOBAL=ojp
dbConnectPasswordGLOBAL=XXXXX
dbEOPrototypesEntityGLOBAL=EOJDBCMySQLPrototypes
dbConnectPluginGLOBAL=MySQLPlugIn




Am 06.11.2017 um 16:55 schrieb André Rothe <andre.ro...@phosco.info>:

Hi,

three questions according the database connection:

I have a model, which has a database connection defined in a connection dictionary. But the model should not open the connection per default, it should get the credentials from another property file which will differ between the instances of the application in the JavaMonitor. If I use this solution:

http://mirror.informatimago.com/next/developer.apple.com/documentation/WebObjects/Enterprise_Objects/Connecting/chapter_10_section_8.html

the app will connect to the default database and makes then a reconnect to the later provided database. Is it possible to prevent the first connect?

If I use multiple EOEditingContexts in my application, I have to change the connection parameters for every EC. When is the best time to set these for the session.defaultEditingContext()? Can I get the current connection credentials from an EditingContext instance to use it on another EC instance?

Thank you.

Best regards
André
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/bock%40salient-doremus.de

This email sent to b...@salient-doremus.de

Mit freundlichen Grüßen

        René Bock

--
Telefon: +49 69 650096 18

salient GmbH, Lindleystraße 12, 60314 Frankfurt
Telefon Zentrale: 069 / 65 00 96 - 0  |  www.salient-doremus.de
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to