Yes, the Karaf instances are on different machines, and I have removed
Cellar entirely from the system.

If I simply start up both instances, then everything *except* the data
sources comes up fine on both instances.  Because of this, I am temporarily
running this system as active/failover (karaf.lock=true) until I can get to
the bottom of this data source issue.

As far as what I see in the logs... on the second node (the one where the
data sources do not initialize), I do see that the cfg's are found, and
there are logging entries stating that they will be initialized, but then
nothing happens. No errors, nothing.

Then if I then stop node 1, I almost immediately see the data sources
initialize on node 2. (But, of course, if I then restart node 1, same issue
- the data sources do not initialize on *that* node).

Throughout all of the variations I have tested, there has been one
constant: - ActiveMQ.  It is configured using JDBC master/slave. It doesn't
seem like this should cause Pax JDBC data sources to not initialize
(ActiveMQ is not sharing the data source - entirely separate
configuration), but that's the only thing I can think of: when ActiveMQ
master releases the lock and allows the slave to become the new master,
that's when I see Pax JDBC initialize the data sources. Thoughts?


On Fri, Mar 9, 2018 at 2:38 AM, Christian Schneider <ch...@die-schneider.net
> wrote:

> Are the karaf instances on different machines?
> If they are on different machines and you do not use cellar or specially
> configured locking then both should come up completely independent from
> each other.
>
> Do you see anything in the log of the second instance when you stop the
> first one? I wonder what could trigger the data source come up in this
> moment.
>
> Christian
>
> 2018-03-08 17:30 GMT+01:00 Matthew Zipay <mzi...@gmail.com>:
>
>> Thanks for the quick replies.  With respect to Cellar, I should clarify
>> that the Pax JDBC issue persists whether or not Cellar is involved (Cellar
>> was a recent addition to the system, specifically to see if its explicit
>> support for active/active would resolve the Pax JDBC issue - it did not).
>>
>> I have tried two variations:
>> (1) Without Cellar, bring up both Karaf nodes without Karaf locking
>> (karaf.lock=false). (i.e. "unsupported" active/active)
>> (2) With Cellar, bring up both Karaf nodes without Karaf locking
>> (karaf.lock=false). (i.e. "supported" active/active)
>>
>> In either scenario, the data sources only initialize on the *first* node
>> that comes up.
>>
>> In either scenario, I can confirm that Pax JDBC bundles are started on
>> both nodes:
>>
>> Node 1:
>> 228 | Active      |  80 | 1.0.1                              | OPS4J Pax
>> JDBC Generic Driver Extender
>> 229 | Active      |  80 | 1.0.1                              | OPS4J Pax
>> JDBC Config
>> 230 | Active      |  80 | 1.0.1                              | OPS4J Pax
>> JDBC Pooling Support Base
>> 270 | Active      |  80 | 1.0.1                              | OPS4J Pax
>> JDBC MSSQL Driver Adapter
>> 271 | Active      |  80 | 1.0.1                              | OPS4J Pax
>> JDBC Oracle Driver Adapter
>> 272 | Active      |  80 | 1.0.1                              | OPS4J Pax
>> JDBC Pooling DBCP2
>>
>> Node 2:
>> 228 | Active      |  80 | 1.0.1                              | OPS4J Pax
>> JDBC Generic Driver Extender
>> 229 | Active      |  80 | 1.0.1                              | OPS4J Pax
>> JDBC Config
>> 230 | Active      |  80 | 1.0.1                              | OPS4J Pax
>> JDBC Pooling Support Base
>> 270 | Active      |  80 | 1.0.1                              | OPS4J Pax
>> JDBC MSSQL Driver Adapter
>> 271 | Active      |  80 | 1.0.1                              | OPS4J Pax
>> JDBC Oracle Driver Adapter
>> 272 | Active      |  80 | 1.0.1                              | OPS4J Pax
>> JDBC Pooling DBCP2
>>
>> However, jdbc:ds-list only shows the initialized data sources on node 1;
>> on node 2 *no* data sources are initialized, and I have multiple bundles in
>> GracePeriod waiting for data sources that never show up. For example, on
>> node 2:
>>
>> admin@root>diag 331
>> SKU Resolution (331)
>> -----------------------------------------------
>> Status: GracePeriod
>> Blueprint
>> 3/8/18 11:10 AM
>> Missing dependencies:
>> (&(dataSourceName=PRODUCTDS)(objectClass=javax.sql.DataSource))
>>
>>
>> The "org.ops4j.datasource-PRODUCT.cfg" config file is present and
>> identical on both nodes. I see the data source initialization occur in node
>> 1's log, but nothing in node 2's log.  As soon as I bring down node 1, then
>> I see the data sources on node 2 initialize.
>>
>> Could this have anything to do with ActiveMQ master/slave? That's the
>> only constant here. It seems unlikely, but I'm out of ideas.
>>
>>
>>
>> On Thursday, March 8, 2018 at 2:32:39 AM UTC-5, Jean-Baptiste Onofré
>> wrote:
>>>
>>> Hi,
>>>
>>> Cellar syncs the bundles and config on the cluster.
>>>
>>> By default, it doesn't sync "local" config (basically the etc/*.cfg
>>> files). To do so, you have to enable the local listener in etc/
>>> org.apache.karaf.cellar.groups.cfg.
>>>
>>> Else, you have to use cluster:config-property-set to create the config
>>> on the cluster.
>>>
>>> Regards
>>> JB
>>>
>>> On 03/08/2018 08:22 AM, Christian Schneider wrote:
>>>
>>> I am not experienced with cellar but generally I would expect that in an
>>> active/active setup both machines start the same services.
>>>
>>> So first thing to check is if the pax-jdbc features and bundles are
>>> active on the second node. If they are active you can check the log to see
>>> if pax-jdbc reports that something is missing.
>>>
>>> When you describe that the datasources on the second machine come up
>>> when the first machine goes down it sounds like you have setup something
>>> like a master slave setup in cellar.
>>>
>>> Christian
>>>
>>> 2018-03-07 22:55 GMT+01:00 Matthew Zipay <mzi...@gmail.com>:
>>>
>>>> I really like the approach that Pax JDBC introduced for managing data
>>>> sources, but I am running into an issue that may require me to abandon it
>>>> if I can't get it resolved.
>>>>
>>>> My setup is as follows:
>>>> ServiceMix 7.0.1 (Karaf 4.0.9) running on two nodes, clustered with
>>>> Cellar (active/active). ActiveMQ is JDBC master/slave. Using Pax JDBC 1.0.1
>>>> (config, pool, and oracle and mssql adapters).
>>>>
>>>> I have five (5) data sources configured for the various databases in
>>>> use by this system. What I see is that the data sources are only available
>>>> on the *first* node in the cluster that comes up.  When the second node
>>>> comes up, even though it also has the data source cfg's, the data sources
>>>> never get initialized, and all of my bundles that use the data sources are
>>>> stuck perpetually in GracePeriod waiting on the data sources (confirmed
>>>> with bundle:diag).
>>>>
>>>> If I bring down the first node, *then* the data sources on the second
>>>> node suddenly spring to life and all's well.  But this is not the behavior
>>>> I would desire or expect, and it may be showstopper for me w/r/t Pax JDBC.
>>>> I need those data sources available on both nodes.
>>>>
>>>> Is this expected? If not, any ideas how I can work around it?
>>>> --
>>>> --
>>>> ------------------
>>>> OPS4J - http://www.ops4j.org - op...@googlegroups.com
>>>>
>>>> ---
>>>> You received this message because you are subscribed to the Google
>>>> Groups "OPS4J" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to ops4j+un...@googlegroups.com.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>>
>>>
>>> --
>>> --
>>> Christian Schneider
>>> http://www.liquid-reality.de
>>>
>>> Computer Scientist
>>> http://www.adobe.com
>>>
>>> --
>>> --
>>> ------------------
>>> OPS4J - http://www.ops4j.org - op...@googlegroups.com
>>>
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "OPS4J" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to ops4j+un...@googlegroups.com.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>>
>>> --
>> --
>> ------------------
>> OPS4J - http://www.ops4j.org - ops4j@googlegroups.com
>>
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "OPS4J" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to ops4j+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
>
> --
> --
> Christian Schneider
> http://www.liquid-reality.de
>
> Computer Scientist
> http://www.adobe.com
>
> --
> --
> ------------------
>
> OPS4J - http://www.ops4j.org - ops4j@googlegroups.com
>
> ---
> You received this message because you are subscribed to a topic in the
> Google Groups "OPS4J" group.
> To unsubscribe from this topic, visit https://groups.google.com/d/
> topic/ops4j/LHv7sqWkZTg/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> ops4j+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
-- 
------------------
OPS4J - http://www.ops4j.org - ops4j@googlegroups.com

--- 
You received this message because you are subscribed to the Google Groups 
"OPS4J" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to ops4j+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to