Re: opening multiple databases from same program

Noel Grandin <[email protected]> Tue, 21 Sep 2010 14:33:29 +0200
Newsgroups gmane.comp.java.orm.simpleorm
Message-ID <[email protected]>
I'm effectively running several smaller apps inside the same Java VM.
Each app has it's own database.
Since this is a Swing desktop application, most of the action happens on the Swing event dispatch thread.
This means that I end up talking to multiple databases from the same thread, triggering the check.

Sigh. I keep having this problem.
Everybody is developing web-applications these days, which means that all of the ORM frameworks are designed around the
HTTP request-response cycle.
I ended up dumping Hibernate because it won't play nice with desktop applications.

Luckily SimpleORM is relatively straight-forward code, so I'm probably just going to run my own private branch of it,
since my changes don't seem to meet with popular approval.

-- Noel

[email protected] wrote:
>  
>
> It is actually possible to dissassociate sessions from threads, and thus have several. But that is a very odd thing to
> want to do. What are you trying to achieve?
>
> (Ususally trying to open a session on a thread that already has an open session means that you did not close the
> previous session, leading to a connection leak, which is why SimpleOrm fails fast.)
>
> Anthony
>
> At 02:02 AM 10/07/2010, you wrote:
> >
> >
> >Hi,
> >
> >well, AFAIK, you can't do that... !
> >
> >SSessionJdbc has built-in checks that a connection is single threaded
> >using a ThreadLocal object. [I think Hibernate has some kind of best
> >practice to achieve the same goal (I'm not formal here, I didn't use
> >hibernate for years)]
> >
> >There is only one dataSource per SSessionJdbc and one SSessionJdbc per
> >thread.
> >
> >You could implement a different strategy to handle this part. Some work
> >was done along this path in a previous version of Simpleorm, for using a
> >single JTA transaction per session. But it is not maintained.
> >See simpleorm/extras/SConnectionEJB.java
> >
> >My question would be : what are you trying to achieve ?
> >
> >Franck
> >
> >Le vendredi 09 juillet 2010 à 17:11 +0200, Noel Grandin a écrit :
> >>
> >> Hi
> >>
> >> I'm opening multiple different databases from the same thread, which
> >> is triggering this check:
> >>
> >> simpleorm.utils.SException$Error: Thread's SSession already open [SS
> >> 1.SkyMon]
> >> [0@17:08:40.976] !SE>: at
> >> simpleorm.sessionjdbc.SSessionJdbc.innerOpen(SSessionJdbc.java:129)
> >> [0@17:08:40.976] !SE>: at
> >> simpleorm.sessionjdbc.SSessionJdbc.open(SSessionJdbc.java:88)
> >> [0@17:08:40.976] !SE>: at
> >> simpleorm.sessionjdbc.SSessionJdbc.open(SSessionJdbc.java:108)
> >>
> >>
> >> What do I do?
> >>
> >> Thanks, Noel Grandin
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >> __________________________________________________________
> >> Disclaimer: <http://www.peralex.com/disclaimer.html>http://www.peralex.com/disclaimer.html
> >>
> >>
> >>
> >>
> >>
> >
> >
>
> Spreadsheet Detective,
> Southern Cross Software Queensland Pty Limited
> 54 Gerler Street
> Bardon, Queensland 4065, Australia.
>
> Email: [email protected] <mailto:berglas%40spreadsheetdetective.com>
> www.SpreadsheetDetective.com
> Ph: +61 427 830248 (Australian Eastern Standard Time)
>
> "If the model seems correct only because the numbers look right,
> then why build the model in the first place?"
>
> 

Disclaimer: http://www.peralex.com/disclaimer.html