Yes, both nodes have identical org.ops4j.data source-*.cfg files under
etc/. I (re)confirmed this morning when I ran more tests.

(Plus, remember that the data sources initialize fine on *whichever* node
comes up first. I can start 1 then 2 and see the data sources only on 1; or
I can start 2 then 1 in which case I see the data sources only on 2. So I'm
fairly confident it's not a data source .cfg issue.)


On Mar 8, 2018 11:43 AM, "Jean-Baptiste Onofré" <
jeanbaptiste.ono...@gmail.com> wrote:

Hi Matt,

And do you have the Pax JDBC config on all nodes ?

Regards
JB

On 03/08/2018 05:30 PM, Matthew Zipay wrote:

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.


-- 
-- 
------------------
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