No subject
Sun Nov 18 18:09:07 JST 2012
I have the same problem when I try it with python: (this shows better what
I mean)
>>> import pyodbc>>> conn = pyodbc.connect('DSN=PostgreSQL')>>> cursor=conn.cursor()>>> query = "INSERT INTO table foo () values (), ()">>> cursor.execute(query)<pyodbc.Cursor object at 0x7f52858e2f30>>>> conn.commit()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
pyodbc.Error: ('HY000', 'The driver did not supply an error!')>>>
cursor.execute(query)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
pyodbc.Error: ('08S01', '[08S01] Could not send Query(connection
dead);\nCould not send Query(connection dead) (26) (SQLExecDirectW)')
Is there a way we can get around that?
This script works great when we connect to postgres without going through
pgpool.
wkr,
Bert
--e89a8ff2535c5c331404d3dfb813
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><div><div><div>Hello, <br><br></div>We are currently migra=
ting from db2 to postgres. Our setup is quite simple: we have one tool that=
reads (reporting service), and only 2 tools that write.=C2=A0 This means t=
hat we'll never get in the situation where we have >20 connections t=
o the db at the same time. <br>
But because our sql statements are sometimes very complicated we have set u=
p postgres with streaming replication, and placed pgpool in front. <br><br>=
</div>pgpool really works good for read-only cursors: our reporting system =
works great, and connections are send to both server.<br>
However we have a problem with our ETL system.<br>From the moment it starts=
writing data it fails. <br><br></div>I have the same problem when I try it=
with python: (this shows better what I mean)<br><pre style class=3D""><cod=
e><span class=3D"">>>></span><span class=3D""> import pyodbc
</span><span class=3D"">>>></span><span class=3D""> conn </span><s=
pan class=3D"">=3D</span><span class=3D""> pyodbc</span><span class=3D"">.<=
/span><span class=3D"">connect</span><span class=3D"">(</span><span class=
=3D"">'DSN=3DPostgreSQL'</span><span class=3D"">)</span><span class=
=3D"">
</span><span class=3D"">>>></span><span class=3D""> </span><span c=
lass=3D"">cursor</span><span class=3D"">=3D</span><span class=3D"">conn</sp=
an><span class=3D"">.</span><span class=3D"">cursor</span><span class=3D"">=
()</span><span class=3D"">
</span><span class=3D"">>>></span><span class=3D""> query </span><=
span class=3D"">=3D</span><span class=3D""> </span><span class=3D"">"I=
NSERT INTO table foo () values (), ()"</span><span class=3D"">
</span><span class=3D"">>>></span><span class=3D""> </span><span c=
lass=3D"">cursor</span><span class=3D"">.</span><span class=3D"">execute</s=
pan><span class=3D"">(</span><span class=3D"">query</span><span class=3D"">=
)</span><span class=3D"">
</span><span class=3D""><</span><span class=3D"">pyodbc</span><span clas=
s=3D"">.</span><span class=3D"">Cursor</span><span class=3D""> object at </=
span><span class=3D"">0x7f52858e2f30</span><span class=3D"">></span><spa=
n class=3D"">
</span><span class=3D"">>>></span><span class=3D""> conn</span><sp=
an class=3D"">.</span><span class=3D"">commit</span><span class=3D"">()</sp=
an><span class=3D"">
Traceback </span><span class=3D"">(</span><span class=3D"">most recent call=
last</span><span class=3D"">):</span><span class=3D"">
</span><span class=3D"">File</span><span class=3D""> </span><span class=
=3D"">"<stdin>"</span><span class=3D"">,</span><span class=
=3D""> line </span><span class=3D"">1</span><span class=3D"">,</span><span =
class=3D""> </span><span class=3D"">in</span><span class=3D""> </span><span=
class=3D""><</span><span class=3D"">module</span><span class=3D"">><=
/span><span class=3D"">
pyodbc</span><span class=3D"">.</span><span class=3D"">Error</span><span cl=
ass=3D"">:</span><span class=3D""> </span><span class=3D"">(</span><span cl=
ass=3D"">'HY000'</span><span class=3D"">,</span><span class=3D""> <=
/span><span class=3D"">'The driver did not supply an error!'</span>=
<span class=3D"">)</span><span class=3D"">
</span><span class=3D"">>>></span><span class=3D""> </span><span c=
lass=3D"">cursor</span><span class=3D"">.</span><span class=3D"">execute</s=
pan><span class=3D"">(</span><span class=3D"">query</span><span class=3D"">=
)</span><span class=3D"">
Traceback </span><span class=3D"">(</span><span class=3D"">most recent call=
last</span><span class=3D"">):</span><span class=3D"">
</span><span class=3D"">File</span><span class=3D""> </span><span class=
=3D"">"<stdin>"</span><span class=3D"">,</span><span class=
=3D""> line </span><span class=3D"">1</span><span class=3D"">,</span><span =
class=3D""> </span><span class=3D"">in</span><span class=3D""> </span><span=
class=3D""><</span><span class=3D"">module</span><span class=3D"">><=
/span><span class=3D"">
pyodbc</span><span class=3D"">.</span><span class=3D"">Error</span><span cl=
ass=3D"">:</span><span class=3D""> </span><span class=3D"">(</span><span cl=
ass=3D"">'08S01'</span><span class=3D"">,</span><span class=3D""> <=
/span><span class=3D"">'[08S01] Could not send Query(connection dead);\=
nCould not send Query(connection dead) (26) (SQLExecDirectW)'</span><sp=
an class=3D"">)<br>
<br></span></code></pre><br><div><div>Is there a way we can get around that=
? <br><br></div><div>This script works great when we connect to postgres wi=
thout going through pgpool.<br><br>wkr,<br>Bert<br></div></div></div>
--e89a8ff2535c5c331404d3dfb813--
More information about the pgpool-general
mailing list