Re: Database connection
Re: Database connection
- Subject: Re: Database connection
- From: Bogdan Zlatanov <email@hidden>
- Date: Wed, 8 Nov 2017 10:32:32 +0100
Hi André,
Is your application based on WOnder? As René already mentioned, all of that
ninjitsu you are doing is already taken care of by WOnder, i.e.
dbConnectURLGLOBAL=jdbc:mysql://localhost/DbName
dbConnectUserGLOBAL=ojp
dbConnectPasswordGLOBAL=XXXXX
dbEOPrototypesEntityGLOBAL=EOJDBCMySQLPrototypes
dbConnectPluginGLOBAL=MySQLPlugIn
Best regards,
Bogdan
On 8 November 2017 at 09:31, André Rothe <email@hidden> wrote:
> 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/doc
> umentation/WebObjects/Enterprise_Objects/Connecting/chapter_
> 10_section_8.html#//apple_ref/doc/uid/TP30001011-DontLinkCha
> pterID_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+Prac
>> tices-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/doc
>>> umentation/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:
>>> 40salient-doremus.de
>>>
>>> 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:
> email@hidden
>
> This email sent to email@hidden
>
_______________________________________________
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