Hi all! 

Talking about nspostgres, has anybody implemented any way to auto reconnect to 
the database in a Postgresql start / stop?

Thanks,
Agustin 

Jim <jim.play...@gmail.com> escribió:

>Hi Majid and the group,
>
>I've been taking care of nspostgres and I made a git copy on github
>with my changes. I did things a little differently, I think a function
>should only have one exit point. So, the structure is a little
>different (I added "else" clauses for "if"s that test for errors, also
>a variable "result" which holds the function return value, a "break"
>statement to get out of the blob loop if a db error happens, a "return
>result" at the end and "result = ..." where appropriate. I also took
>care of the close(fd) thing.)
>
>Take a look! You can:
>
>   git clone git://github.com/jwlynch/nspostgres.git
>
>Whoever wants to (would appreciate it if Dossy and Majid) can take a
>look and see if this thing works; I'll ask openacs people to check it
>out as well.
>
>-Jim
>
>On 2/6/12, Majid Khan <majidkha...@gmail.com> wrote:
>> Hello All,
>>
>> Just checking the code of nspostgres driver (downloaded from git) and
>found
>> that the code needs some fixes. Couple of thing which I see
>>
>> 1- in nspostgres.c
>>
>> fucntion: static int blob_dml_file
>> where we see these lines:
>>
>> if (fd == -1)
>> {
>> Ns_Log (Error, " Error opening file %s: %d(%s)", filename, errno,
>> strerror(errno));
>> Tcl_AppendResult (interp, "can't open file ", filename, " for
>reading. ",
>> "received error ", strerror(errno), NULL);
>> }
>>
>> Why to continue the process when we are unable to open the file?
>Shouldn't
>> it be
>>
>> if (fd == -1)
>> {
>> Ns_Log (Error, " Error opening file %s: %d(%s)", filename, errno,
>> strerror(errno));
>> Tcl_AppendResult (interp, "can't open file ", filename, " for
>reading. ",
>> "received error ", strerror(errno), NULL);
>> *return TCL_ERROR;
>> *}
>>
>> 2- In the same function where we have this:
>>
>> if (Ns_PgExec(handle, query) != NS_DML) {
>>  Tcl_DString errString;
>>  Tcl_DStringInit(&errString);
>>  Tcl_DStringAppend
>>  (&errString, "Error inserting data into BLOB\n", -1);
>>  if(handle->verbose)
>>  {
>>  append_PQresultStatus(&errString, nspgConn->res);
>>
>>  Tcl_DStringAppend(&errString, "SQL: ", -1);
>>  Tcl_DStringAppend(&errString, query, -1);
>>  }
>>  Tcl_AppendResult(interp, Tcl_DStringValue(&errString), NULL);
>>  Tcl_DStringFree(&errString);
>>  return TCL_ERROR;
>> }
>>
>> here while returning error we are not closing the file descriptor so
>I see
>> a resource leak so it should be
>>
>>  if (Ns_PgExec(handle, query) != NS_DML) {
>>  Tcl_DString errString;
>>  Tcl_DStringInit(&errString);
>>  Tcl_DStringAppend
>>  (&errString, "Error inserting data into BLOB\n", -1);
>>  if(handle->verbose)
>>  {
>>  append_PQresultStatus(&errString, nspgConn->res);
>>
>>  Tcl_DStringAppend(&errString, "SQL: ", -1);
>>  Tcl_DStringAppend(&errString, query, -1);
>>  }
>>  Tcl_AppendResult(interp, Tcl_DStringValue(&errString), NULL);
>>  Tcl_DStringFree(&errString);
>>  *close(fd);
>> * return TCL_ERROR;
>> }
>>
>>
>> Regards,
>>
>> Majid.
>>
>
>------------------------------------------------------------------------------
>Virtualization & Cloud Management Using Capacity Planning
>Cloud computing makes use of virtualization - but cloud computing 
>also focuses on allowing computing to be delivered as a service.
>http://www.accelacomm.com/jaw/sfnl/114/51521223/
>_______________________________________________
>aolserver-talk mailing list
>aolserver-talk@lists.sourceforge.net
>https://lists.sourceforge.net/lists/listinfo/aolserver-talk

-- 
Enviado desde mi teléfono Android con K-9 Mail. Disculpa mi brevedad

------------------------------------------------------------------------------
Virtualization & Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
_______________________________________________
aolserver-talk mailing list
aolserver-talk@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/aolserver-talk

Reply via email to