Hi Dave,

> > - You seem to have hard-coded the exit code from Windows batch job
> > 
> > steps to 1. Why?
> > 
> > 
> > 
> > => i changed back to git-head version. i believe it come from old 3.3.0
> > source code version. I will never make such things.
> 
> I'm working on git-head (d6c5a807110a7ec6ecde9ad59dd7e3b35891fb5e),
> and see this when I apply your patch:
> 
> -                               GetExitCodeProcess(h_process, (LPDWORD)&rc);
> -                               CloseHandle(h_process);
>                                 CloseHandle(h_script);
> -
> +                               rc = 1;
> 
> This is clearly changing the logic here, which it should not.

Sorry. Sorry. :(
i corrected this. Done

> Another problem that I've noticed is that you've unconditionally
> changed the logging format to be pipe delimited. This is also not
> acceptable as part of this patch, and should be discussed and
> implemented separately. At minimum, this would need to be a
> configurable behaviour change, and by default, I would want it to
> implement standard (comma delimited) CSV, not a pipe delimited
> version.
okay. i change this feature to configurable behaviour. 
By default logging will be as before.
can i add an commandline parameter for this? 
is it than acceptable?


> That's not playing nicely with my compiler:
> 
> viper:pgagent dpage$ make all
> Scanning dependencies of target pgagent
> [ 14%] [ 28%] [ 42%] [ 57%] Building CXX object
> CMakeFiles/pgagent.dir/job.cpp.o Building CXX object
> CMakeFiles/pgagent.dir/connection.cpp.o
> Building CXX object CMakeFiles/pgagent.dir/misc.cpp.o
> Building CXX object CMakeFiles/pgagent.dir/pgAgent.cpp.o
> cc1plus: error: unrecognized command line option "-std=c++11"cc1plus:
> error: unrecognized command line option "-std=c++11"
> 
> cc1plus: error: unrecognized command line option "-std=c++11"
> cc1plus: error: unrecognized command line option "-std=c++11"
> make[2]: *** [CMakeFiles/pgagent.dir/connection.cpp.o] Error 1
> make[2]: *** Waiting for unfinished jobs....
> make[2]: *** [CMakeFiles/pgagent.dir/misc.cpp.o] Error 1
> make[2]: *** [CMakeFiles/pgagent.dir/pgAgent.cpp.o] Error 1
> make[2]: *** [CMakeFiles/pgagent.dir/job.cpp.o] Error 1
> make[1]: *** [CMakeFiles/pgagent.dir/all] Error 2
> make: *** [all] Error 2
> 
> That's with i686-apple-darwin11-llvm-g++-4.2 (GCC) 4.2.1 (Based on
> Apple Inc. build 5658) (LLVM build 2336.11.00), the default compiler
> on Mac OS X Mountain Lion. FYI, we need to support much older
> compilers than that, for example, g++ (GCC) 4.1.2 20080704 (Red Hat
> 4.1.2-54) ships with RHEL 5, which is a supported platform.

Okay, thats a problem. 
I use features from c++11 standard like "atomic" and "thread"
My suggestion:
the Pure-C++-Version is is for newer OS / Compiler suits and not backward 
compatible 
(relating compiler / c++ version)
Is the way a possible?

> > - You also seem to have removed the connection pool. Why?
> > 
> > 
> > 
> > Why not?
> > 
> > Pos:
> > 
> > + The code is simpler (no locking at all, fewer code)
> > 
> > + easier maintenance
> > 
> > 
> > 
> > Neg:
> > 
> > - i'm not sure. maybe more parallel connection.
> > 
> > 
> > 
> > There are two scenarios:
> > 
> > normal typ: two or three dozen job. only a few running in parallel
> > 
> > 
> > 
> > big typ: many many jobs. many running in parallel. This companies have
> > other
> > problems or use a connection pooler like pgpool.
> > 
> > 
> > 
> > In summary the positive points weigh more heavily
> 
> This change is unrelated to porting to pure C++, and needs to be
> discussed and (if acceptable) implemented as a separate patch. I'm not
> convinced it's an appropriate change at all - I certainly work with
> customer who do not use a connection pooler for various reasons, and
> rely on the pooler in the agent to prevent large numbers of
> connect/disconnect cycles, which amongst other things use resources
> unnecessarily, and can fill up audit logs.
it is very time consuming to keep this feature for c++-port.

please tell me for my understanding:
In the moment you reuse a connection object. okay. 
But how can you use it for an another host / user combination<ß The same 
object. 
Example
Job 1 - step 1: connect to User: x Host A
Job 1 - step 2: connect to User: x Host B
if you use the same connection object, the database log has a 
connect/disconnect 
entry.

Job 1 - step 1: connect to User: x Host A
Job 1 - step 2: connect to User: x Host A
And when the same Host/User combination is for a reused connection:
How make you a logical reset for the database server?

In the last scenario can i make a reusing too. With move the 
Jobthread-SQL-action to 
the Mainloop i can reduce the needed connection count to 1xJob count + 1 
(service 
connect). in my implementation i need at the moment 2xJobcount+1 connection 
objects. 

Reply via email to