[OSGI] test if JDBCPoolComponents are started for all my DS

View: New views
8 Messages — Rating Filter:   Alert me  

[OSGI] test if JDBCPoolComponents are started for all my DS

by ekke :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

hi,

have you an idea how I can test if the JDBCPoolComponent.start was
executed for all my Datasources ?

they must be started before I can start my EJB bundles

I can test using ServiceTracker if the jdbcpool-component-factory was
started, but its not enough - if I try to start my EJB bundle before the
Datasources are available, EasyBeans uses standard DS "jdbc"_1 and - of
course - gets an exception because this is not bopund to a JNDI name

thx

ekke


Re: [OSGI] test if JDBCPoolComponents are started for all my DS

by ekke :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I found a way:

I wait until

ConnectionManager.getConnectionManager(DATASOURCE_NAMES[i])

for all my Data Sources != null

or do you have another idea ?

ekke

ekke schrieb:

> hi,
>
> have you an idea how I can test if the JDBCPoolComponent.start was
> executed for all my Datasources ?
>
> they must be started before I can start my EJB bundles
>
> I can test using ServiceTracker if the jdbcpool-component-factory was
> started, but its not enough - if I try to start my EJB bundle before the
> Datasources are available, EasyBeans uses standard DS "jdbc"_1 and - of
> course - gets an exception because this is not bopund to a JNDI name
>
> thx
>
> ekke
>
>


Re: Re: [OSGI] test if JDBCPoolComponents are started for all my DS

by Guillaume Sauthier :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Currently, I have no other good suggestion.
I think that our components maybe should register another interface than
only EZBComponent (which can be seen as a management interface, with
start/stop, ...): the business interface of the component should be
exposed too, so that it simplify defining dependencies with OSGi...

If you could open an improvement in JIRA, please :)
--G

ekke a écrit :

> I found a way:
>
> I wait until
>
> ConnectionManager.getConnectionManager(DATASOURCE_NAMES[i])
>
> for all my Data Sources != null
>
> or do you have another idea ?
>
> ekke
>
> ekke schrieb:
>> hi,
>>
>> have you an idea how I can test if the JDBCPoolComponent.start was
>> executed for all my Datasources ?
>>
>> they must be started before I can start my EJB bundles
>>
>> I can test using ServiceTracker if the jdbcpool-component-factory was
>> started, but its not enough - if I try to start my EJB bundle before
>> the Datasources are available, EasyBeans uses standard DS "jdbc"_1
>> and - of course - gets an exception because this is not bopund to a
>> JNDI name
>>
>> thx
>>
>> ekke
>>
>>
>
>
>

[Guillaume_Sauthier.vcf]

begin:vcard
fn:Guillaume Sauthier
n:Sauthier;Guillaume
org:<a href="http://www.ow2.org"><img title="OW2" alt="OW2 Consortium" border="0" src="http://www.ow2.org/xwiki/bin/skin/XWiki/DefaultSkin/logoOW2.png" /></a>
adr:;;;;;;France
email;internet:guillaume.sauthier@...
title:<a href="http://jonas.ow2.org">JOnAS Application Server</a>
x-mozilla-html:TRUE
url:http://jonas.ow2.org
version:2.1
end:vcard



Re: Re: Re: [OSGI] test if JDBCPoolComponents are started for all my DS

by Guillaume Sauthier :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Writing the mail for ManagedService SLSB, rang a bell for me:
Currently, we also register 1 service per interface, we don't collect
the bean's business interfaces and register 1 service for all.
As you're application is quite big, that maybe explain why you have so
many services ...

WDYT ?
--G

Guillaume Sauthier a écrit :

> Currently, I have no other good suggestion.
> I think that our components maybe should register another interface
> than only EZBComponent (which can be seen as a management interface,
> with start/stop, ...): the business interface of the component should
> be exposed too, so that it simplify defining dependencies with OSGi...
>
> If you could open an improvement in JIRA, please :)
> --G
>
> ekke a écrit :
>> I found a way:
>>
>> I wait until
>>
>> ConnectionManager.getConnectionManager(DATASOURCE_NAMES[i])
>>
>> for all my Data Sources != null
>>
>> or do you have another idea ?
>>
>> ekke
>>
>> ekke schrieb:
>>> hi,
>>>
>>> have you an idea how I can test if the JDBCPoolComponent.start was
>>> executed for all my Datasources ?
>>>
>>> they must be started before I can start my EJB bundles
>>>
>>> I can test using ServiceTracker if the jdbcpool-component-factory
>>> was started, but its not enough - if I try to start my EJB bundle
>>> before the Datasources are available, EasyBeans uses standard DS
>>> "jdbc"_1 and - of course - gets an exception because this is not
>>> bopund to a JNDI name
>>>
>>> thx
>>>
>>> ekke
>>>
>>>
>>
>>
>>
>

[Guillaume_Sauthier.vcf]

begin:vcard
fn:Guillaume Sauthier
n:Sauthier;Guillaume
org:<a href="http://www.ow2.org"><img title="OW2" alt="OW2 Consortium" border="0" src="http://www.ow2.org/xwiki/bin/skin/XWiki/DefaultSkin/logoOW2.png" /></a>
adr:;;;;;;France
email;internet:guillaume.sauthier@...
title:<a href="http://jonas.ow2.org">JOnAS Application Server</a>
x-mozilla-html:TRUE
url:http://jonas.ow2.org
version:2.1
end:vcard



Re: [OSGI] test if JDBCPoolComponents are started for all my DS

by ekke :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Guillaume Sauthier schrieb:
> Writing the mail for ManagedService SLSB, rang a bell for me:
> Currently, we also register 1 service per interface, we don't collect
> the bean's business interfaces and register 1 service for all.

yes, one interface for the @Remote and one for the @Local,
but why so many 'identical' for the same @Remote or @Local ?

that you register a service per each Interface of a SLSB that is OK -
then I can choose the @Remote as ManagedService, add the Riena properties
and use them as Remote Services from Riena Clients

> As you're application is quite big, that maybe explain why you have so
> many services ...
>

80000 + interfaces for some hundred interfaces ?

> WDYT ?
> --G
>
> Guillaume Sauthier a écrit :
>> Currently, I have no other good suggestion.
>> I think that our components maybe should register another interface
>> than only EZBComponent (which can be seen as a management interface,
>> with start/stop, ...): the business interface of the component should
>> be exposed too, so that it simplify defining dependencies with OSGi...
>>
>> If you could open an improvement in JIRA, please :)
>> --G
>>
>> ekke a écrit :
>>> I found a way:
>>>
>>> I wait until
>>>
>>> ConnectionManager.getConnectionManager(DATASOURCE_NAMES[i])
>>>
>>> for all my Data Sources != null
>>>
>>> or do you have another idea ?
>>>
>>> ekke
>>>
>>> ekke schrieb:
>>>> hi,
>>>>
>>>> have you an idea how I can test if the JDBCPoolComponent.start was
>>>> executed for all my Datasources ?
>>>>
>>>> they must be started before I can start my EJB bundles
>>>>
>>>> I can test using ServiceTracker if the jdbcpool-component-factory
>>>> was started, but its not enough - if I try to start my EJB bundle
>>>> before the Datasources are available, EasyBeans uses standard DS
>>>> "jdbc"_1 and - of course - gets an exception because this is not
>>>> bopund to a JNDI name
>>>>
>>>> thx
>>>>
>>>> ekke
>>>>
>>>>
>>>
>>>
>>>
>>
>


Re: Re: [OSGI] test if JDBCPoolComponents are started for all my DS

by Guillaume Sauthier :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

ekke a écrit :
> Guillaume Sauthier schrieb:
>> Writing the mail for ManagedService SLSB, rang a bell for me:
>> Currently, we also register 1 service per interface, we don't collect
>> the bean's business interfaces and register 1 service for all.
>
> yes, one interface for the @Remote and one for the @Local,
> but why so many 'identical' for the same @Remote or @Local ?
Good question :)

>
> that you register a service per each Interface of a SLSB that is OK -
> then I can choose the @Remote as ManagedService, add the Riena properties
> and use them as Remote Services from Riena Clients
>
>> As you're application is quite big, that maybe explain why you have
>> so many services ...
>>
>
> 80000 + interfaces for some hundred interfaces ?
Hehe, I did not say there was no bug :)
I was just trying to better understand your context :)

I'll continue this discussion on the right thread :)
--G

>
>> WDYT ?
>> --G
>>
>> Guillaume Sauthier a écrit :
>>> Currently, I have no other good suggestion.
>>> I think that our components maybe should register another interface
>>> than only EZBComponent (which can be seen as a management interface,
>>> with start/stop, ...): the business interface of the component
>>> should be exposed too, so that it simplify defining dependencies
>>> with OSGi...
>>>
>>> If you could open an improvement in JIRA, please :)
>>> --G
>>>
>>> ekke a écrit :
>>>> I found a way:
>>>>
>>>> I wait until
>>>>
>>>> ConnectionManager.getConnectionManager(DATASOURCE_NAMES[i])
>>>>
>>>> for all my Data Sources != null
>>>>
>>>> or do you have another idea ?
>>>>
>>>> ekke
>>>>
>>>> ekke schrieb:
>>>>> hi,
>>>>>
>>>>> have you an idea how I can test if the JDBCPoolComponent.start was
>>>>> executed for all my Datasources ?
>>>>>
>>>>> they must be started before I can start my EJB bundles
>>>>>
>>>>> I can test using ServiceTracker if the jdbcpool-component-factory
>>>>> was started, but its not enough - if I try to start my EJB bundle
>>>>> before the Datasources are available, EasyBeans uses standard DS
>>>>> "jdbc"_1 and - of course - gets an exception because this is not
>>>>> bopund to a JNDI name
>>>>>
>>>>> thx
>>>>>
>>>>> ekke
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>
>
>
>

[Guillaume_Sauthier.vcf]

begin:vcard
fn:Guillaume Sauthier
n:Sauthier;Guillaume
org:<a href="http://www.ow2.org"><img title="OW2" alt="OW2 Consortium" border="0" src="http://www.ow2.org/xwiki/bin/skin/XWiki/DefaultSkin/logoOW2.png" /></a>
adr:;;;;;;France
email;internet:guillaume.sauthier@...
title:<a href="http://jonas.ow2.org">JOnAS Application Server</a>
x-mozilla-html:TRUE
url:http://jonas.ow2.org
version:2.1
end:vcard



Re: [OSGI] test if JDBCPoolComponents are started for all my DS

by ekke :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Guillaume Sauthier schrieb:
> I was just trying to better understand your context :)
>

and I'm still trying to understand what EasyBeans does ;-)
hope I'll learn much before my application goes productive

thx for all your help and soon answers

ekke


Re: [OSGI] test if JDBCPoolComponents are started for all my DS

by ekke :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

additional info

small example with my "sample" unit:

11.08.08 10:11:13 (I) JContainer3.start : Container
'org.ekkehard.sample.dataManager' [7 SLSB, 0 SFSB, 0 MDB] started in 910 ms

7 SLSB - thats OK :-)

56 Services ?
2+4+6+8+10+12+14 = 56 :-)

the service.id is so high, because there were other units initialized before

ekke

[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.mitarbeiter.UserLocalManagerI}={service.id=80178}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.mitarbeiter.UserRemoteManagerI}={service.id=80179}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.mitarbeiter.UserLocalManagerI}={service.id=80180}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.mitarbeiter.UserRemoteManagerI}={service.id=80181}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.mitarbeiter.FahrerLocalManagerI}={service.id=80182}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.mitarbeiter.FahrerRemoteManagerI}={service.id=80183}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.mitarbeiter.UserLocalManagerI}={service.id=80184}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.mitarbeiter.UserRemoteManagerI}={service.id=80185}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.mitarbeiter.FahrerLocalManagerI}={service.id=80186}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.mitarbeiter.FahrerRemoteManagerI}={service.id=80187}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.mitarbeiter.MitarbeiterLocalManagerI}={service.id=80188}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.mitarbeiter.MitarbeiterRemoteManagerI}={service.id=80189}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.mitarbeiter.UserLocalManagerI}={service.id=80190}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.mitarbeiter.UserRemoteManagerI}={service.id=80191}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.mitarbeiter.FahrerLocalManagerI}={service.id=80192}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.mitarbeiter.FahrerRemoteManagerI}={service.id=80193}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.mitarbeiter.MitarbeiterLocalManagerI}={service.id=80194}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.mitarbeiter.MitarbeiterRemoteManagerI}={service.id=80195}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.adresse.LandLocalManagerI}={service.id=80196}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.adresse.LandRemoteManagerI}={service.id=80197}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.mitarbeiter.UserLocalManagerI}={service.id=80198}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.mitarbeiter.UserRemoteManagerI}={service.id=80199}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.mitarbeiter.FahrerLocalManagerI}={service.id=80200}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.mitarbeiter.FahrerRemoteManagerI}={service.id=80201}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.mitarbeiter.MitarbeiterLocalManagerI}={service.id=80202}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.mitarbeiter.MitarbeiterRemoteManagerI}={service.id=80203}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.adresse.LandLocalManagerI}={service.id=80204}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.adresse.LandRemoteManagerI}={service.id=80205}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.container.ContainerLocalManagerI}={service.id=80206}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.container.ContainerRemoteManagerI}={service.id=80207}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.mitarbeiter.UserLocalManagerI}={service.id=80208}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.mitarbeiter.UserRemoteManagerI}={service.id=80209}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.mitarbeiter.FahrerLocalManagerI}={service.id=80210}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.mitarbeiter.FahrerRemoteManagerI}={service.id=80211}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.mitarbeiter.MitarbeiterLocalManagerI}={service.id=80212}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.mitarbeiter.MitarbeiterRemoteManagerI}={service.id=80213}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.adresse.LandLocalManagerI}={service.id=80214}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.adresse.LandRemoteManagerI}={service.id=80215}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.container.ContainerLocalManagerI}={service.id=80216}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.container.ContainerRemoteManagerI}={service.id=80217}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.adresse.AdresseLocalManagerI}={service.id=80218}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.adresse.AdresseRemoteManagerI}={service.id=80219}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.mitarbeiter.UserLocalManagerI}={service.id=80220}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.mitarbeiter.UserRemoteManagerI}={service.id=80221}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.mitarbeiter.FahrerLocalManagerI}={service.id=80222}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.mitarbeiter.FahrerRemoteManagerI}={service.id=80223}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.mitarbeiter.MitarbeiterLocalManagerI}={service.id=80224}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.mitarbeiter.MitarbeiterRemoteManagerI}={service.id=80225}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.adresse.LandLocalManagerI}={service.id=80226}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.adresse.LandRemoteManagerI}={service.id=80227}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.container.ContainerLocalManagerI}={service.id=80228}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.container.ContainerRemoteManagerI}={service.id=80229}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.adresse.AdresseLocalManagerI}={service.id=80230}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.adresse.AdresseRemoteManagerI}={service.id=80231}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.tabellen.basis.NummernkreisLocalManagerI}={service.id=80232}
[ekkehard.server] service tracked:
{org.ekkehard.sample.dataManager.tabellen.basis.NummernkreisRemoteManagerI}={service.id=80233}

LightInTheBox - Buy quality products at wholesale price!