curator-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Cameron McKenzie <mckenzie....@gmail.com>
Subject Re: curator pathcache
Date Thu, 10 Mar 2016 00:16:39 GMT
The TestingServer class is definitely in the curator-test jar, so you must
have some issue with your build / IDE environment.

On Thu, Mar 10, 2016 at 11:13 AM, s influxdb <elastic.l.k@gmail.com> wrote:

> I tried importing the curator-test artifcactid and it this import
> org.apache.curator.test.TestingServer; doesn't resolve
>
> On Wed, Mar 9, 2016 at 2:58 PM, Cameron McKenzie <mckenzie.cam@gmail.com>
> wrote:
>
>> Can you try running the PathCacheExample unmodified? It uses a testing ZK
>> server. But can you just confirm that this much works for you? Then maybe
>> try and modify the sample so that it connects to your real ZK instance?
>>
>> On Thu, Mar 10, 2016 at 9:53 AM, s influxdb <elastic.l.k@gmail.com>
>> wrote:
>>
>>> i did try adding a sleep and got the same result
>>>      cache.start();
>>>             Thread.sleep(5000);
>>>             list(cache);
>>>
>>> I am using curator libraries version 2.10 and zookeeper version 3..4.6
>>>
>>> On Wed, Mar 9, 2016 at 2:19 PM, Cameron McKenzie <mckenzie.cam@gmail.com
>>> > wrote:
>>>
>>>> I think that you have a race condition between calling start() on your
>>>> cache and calling list(). Calling list() just checks the current state of
>>>> the cache. If it hasn't communicated with ZK yet, it won't have any data.
>>>> Try putting in a sleep after the cache.start() call, before you call list().
>>>>
>>>> On Thu, Mar 10, 2016 at 9:16 AM, s influxdb <elastic.l.k@gmail.com>
>>>> wrote:
>>>>
>>>>> sure
>>>>>
>>>>> main class
>>>>>     RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, 3);
>>>>>             client = CuratorFrameworkFactory.newClient("10.x.x.x",
>>>>> retryPolicy);
>>>>>             client.start();
>>>>>             SyncData sd = new SyncData(client);
>>>>>             sd.run();
>>>>>
>>>>> the class that calls cache
>>>>>
>>>>> private static final String PATH = "/zktest";
>>>>>
>>>>>     public void run () throws Exception
>>>>>        {
>>>>>         try {
>>>>>
>>>>>             cache = new PathChildrenCache(client, PATH, true);
>>>>>             cache.start();
>>>>>
>>>>>             list(cache);
>>>>>
>>>>>
>>>>>                 for(;;) {
>>>>>                     try {
>>>>>                         Thread.sleep(50000);
>>>>>                     } catch(InterruptedException e) {
>>>>>                     }
>>>>>                 }
>>>>>
>>>>>             }
>>>>>              finally {
>>>>>                 CloseableUtils.closeQuietly(cache);
>>>>>              }
>>>>>         }
>>>>>
>>>>> On Wed, Mar 9, 2016 at 1:30 PM, Cameron McKenzie <
>>>>> mckenzie.cam@gmail.com> wrote:
>>>>>
>>>>>> I just tried running the example and it seems to work fine for me.
I
>>>>>> assume that you modified the code in some way for it to run against
a
>>>>>> proper ZK instance? Can you post it somewhere?
>>>>>>
>>>>>> On Thu, Mar 10, 2016 at 5:53 AM, s influxdb <elastic.l.k@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>>
>>>>>>> ---------- Forwarded message ----------
>>>>>>> From: s influxdb <elastic.l.k@gmail.com>
>>>>>>> Date: Wed, Mar 9, 2016 at 10:36 AM
>>>>>>> Subject: Re: curator pathcache
>>>>>>> To: Jordan Zimmerman <jordan@jordanzimmerman.com>
>>>>>>> Cc: user@curator.apache.org
>>>>>>>
>>>>>>>
>>>>>>> Sorry for posting this in a wrong forum the first time.
>>>>>>>
>>>>>>> I recreated a new project and was running the example code here
for
>>>>>>> cache : http://curator.apache.org/curator-examples/index.html
>>>>>>>
>>>>>>>
>>>>>>> Today when i  try to replicathe NPE i am unable to do that .
>>>>>>> However when i call the  list(cache) it prints the size of the
data
>>>>>>> in the node as 0. This works with NodeCache
>>>>>>>
>>>>>>> Curator libraries are 2.10 and zookeeper version 3.4.6.
>>>>>>>
>>>>>>> Ideally i would like to use TreeCache but it gave me NPE too.
My use
>>>>>>> case is setting a watch on the entire znode in the cluster and
be notified
>>>>>>> about it. Thanks for replying to the mail.
>>>>>>>
>>>>>>>     private static void list(PathChildrenCache cache)
>>>>>>>     {
>>>>>>>         if ( cache.getCurrentData().size() == 0 )
>>>>>>>         {
>>>>>>>             System.out.println("* empty *");
>>>>>>>         }
>>>>>>>         else
>>>>>>>         {
>>>>>>>             for ( ChildData data : cache.getCurrentData() )
>>>>>>>             {
>>>>>>>                 System.out.println(data.getPath() + " = " + new
>>>>>>> String(data.getData()));
>>>>>>>             }
>>>>>>>         }
>>>>>>>     }
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Wed, Mar 9, 2016 at 9:44 AM, Jordan Zimmerman <
>>>>>>> jordan@jordanzimmerman.com> wrote:
>>>>>>>
>>>>>>>> Moving this to Curator’s list…
>>>>>>>>
>>>>>>>> Where do you get the NPE? Please send the stacktrace.
>>>>>>>>
>>>>>>>> -Jordan
>>>>>>>>
>>>>>>>> > On Mar 8, 2016, at 8:27 PM, s influxdb <elastic.l.k@gmail.com>
>>>>>>>> wrote:
>>>>>>>> >
>>>>>>>> > I am trying to run the path cahce and keep java NPE
>>>>>>>> >
>>>>>>>> > Running curator 2.9.0 libraries against a zookeeper
3.4.6 cluster
>>>>>>>> > Even
>>>>>>>> >
>>>>>>>> > The samples are taken from the curator examples .
>>>>>>>> >
>>>>>>>> >
>>>>>>>> >
>>>>>>>> >  public void run () throws Exception
>>>>>>>> >       {
>>>>>>>> >             try {
>>>>>>>> >
>>>>>>>> >                pcache = new PathChildrenCache(client,
PATH, true);
>>>>>>>> >             pcache.start();
>>>>>>>> >
>>>>>>>> >                addListener(cache);
>>>>>>>> >
>>>>>>>> >           //    list(pcache);
>>>>>>>> >
>>>>>>>> >               pcache.close();
>>>>>>>> >            }
>>>>>>>> >             finally {
>>>>>>>> >                CloseableUtils.closeQuietly(cache);
>>>>>>>> >             }
>>>>>>>> >        }
>>>>>>>> >
>>>>>>>> >
>>>>>>>> >      private static void addListener(PathChildrenCache
cache)
>>>>>>>> >      {
>>>>>>>> >          // a PathChildrenCacheListener is optional.
Here, it's
>>>>>>>> used just
>>>>>>>> > to log changes
>>>>>>>> >          PathChildrenCacheListener listener = new
>>>>>>>> > PathChildrenCacheListener()
>>>>>>>> >          {
>>>>>>>> >              @Override
>>>>>>>> >              public void childEvent(CuratorFramework
client,
>>>>>>>> > PathChildrenCacheEvent event) throws Exception
>>>>>>>> >              {
>>>>>>>> >                  switch ( event.getType() )
>>>>>>>> >                  {
>>>>>>>> >                      case CHILD_ADDED:
>>>>>>>> >                      {
>>>>>>>> >                          System.out.println("Node added:
" +
>>>>>>>> > ZKPaths.getNodeFromPath(event.getData().getPath()));
>>>>>>>> >                          break;
>>>>>>>> >                      }
>>>>>>>> >
>>>>>>>> >                      case CHILD_UPDATED:
>>>>>>>> >                      {
>>>>>>>> >                          System.out.println("Node changed:
" +
>>>>>>>> > ZKPaths.getNodeFromPath(event.getData().getPath()));
>>>>>>>> >                          break;
>>>>>>>> >                      }
>>>>>>>> >
>>>>>>>> >                      case CHILD_REMOVED:
>>>>>>>> >                      {
>>>>>>>> >                          System.out.println("Node removed:
" +
>>>>>>>> > ZKPaths.getNodeFromPath(event.getData().getPath()));
>>>>>>>> >                          break;
>>>>>>>> >                      }
>>>>>>>> >                  }
>>>>>>>> >              }
>>>>>>>> >          };
>>>>>>>> >          cache.getListenable().addListener(listener);
>>>>>>>> >      }
>>>>>>>> >
>>>>>>>> >
>>>>>>>> > Here running a list returns empty size all the time
>>>>>>>> >
>>>>>>>> >      private static void list(PathChildrenCache cache)
>>>>>>>> >        {
>>>>>>>> >
>>>>>>>> >            if ( cache.getCurrentData().size() == 0 )
>>>>>>>> >            {
>>>>>>>> >                System.out.println("* empty *");
>>>>>>>> >            }
>>>>>>>> >            else
>>>>>>>> >            {
>>>>>>>> >                for ( ChildData data : cache.getCurrentData()
)
>>>>>>>> >                {
>>>>>>>> >                    System.out.println(data.getPath()
+ " = " + new
>>>>>>>> > String(data.getData()));
>>>>>>>> >                }
>>>>>>>> >            }
>>>>>>>> >        }
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>

Mime
View raw message