Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Threaded View
Pig >> mail # user >> EvalFunc finish() closing connections prematurely


Copy link to this message
-
Re: EvalFunc finish() closing connections prematurely
Sure thing - here you go
https://gist.github.com/msukmanowsky/198c878e1deaf4e470a9

When initialized, the ParselyMetadataService creates a new Mongo and Jedis
instance which the EvalFunc queries using a public method fetch().
 Instance of ParselyMetadataService also have a close() function which
simply calls:

this.mongoClient.close();
this.redisClient.disconnect();
On Thu, Mar 14, 2013 at 5:24 PM, Jonathan Coveney <[EMAIL PROTECTED]>wrote:

> Can you perhaps share more of your implementation? I can imagine a couple
> of things which would cause errors like this. Are you making sure that each
> instance of EvalFunc is dealing with a different connection?
>
> That's what I'd take a look at first...if that isn't the issue, I can look
> into how final() is implemented.
>
>
> 2013/3/14 Mike Sukmanowsky <[EMAIL PROTECTED]>
>
> > Hi there,
> >
> > I have an EvalFunc which uses an internal class that opens up connections
> > to a Redis and MongoDB server.  This class has a close() method which
> > closes connections to both Redis and MongoDB.
> >
> > In my EvalFunc implementation, I placed the close() method
> >
> >     @Override
> >   public void finish() {
> >   meta.close();
> >   }
> >
> > But this is leading to a
> >
> > java.lang.IllegalStateException: this Mongo has been closed
> >
> > indicating that Pig attempted to read from Mongo after a call to
> finish().
> >  Is this an error specific to running a Pig script locally?
> >
> > Mike
> >
> > --
> > Mike Sukmanowsky
> >
> > Product Lead, http://parse.ly
> > 989 Avenue of the Americas, 3rd Floor
> > New York, NY  10018
> > p: +1 (416) 953-4248
> > e: [EMAIL PROTECTED]
> >
>

--
Mike Sukmanowsky

Product Lead, http://parse.ly
989 Avenue of the Americas, 3rd Floor
New York, NY  10018
p: +1 (416) 953-4248
e: [EMAIL PROTECTED]