• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Database connection
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Database connection


  • Subject: Re: Database connection
  • From: André Rothe <email@hidden>
  • Date: Wed, 08 Nov 2017 09:31:56 +0100

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 <email@hidden>:

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      (email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

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      (email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

  • Follow-Ups:
    • Re: Database connection
      • From: Jean-François Veillette <email@hidden>
    • Re: Database connection
      • From: Samuel Pelletier <email@hidden>
    • Re: Database connection
      • From: Bogdan Zlatanov <email@hidden>
References: 
 >Database connection (From: André Rothe <email@hidden>)
 >Re: Database connection (From: René Bock <email@hidden>)

  • Prev by Date: Re: Google maps
  • Next by Date: Re: Database connection
  • Previous by thread: Re: Database connection
  • Next by thread: Re: Database connection
  • Index(es):
    • Date
    • Thread