Thread: Protocol question - fastpath & parameter status 'S'
Hello, During testing of (forked) driver we had seen following strange behaviour. JDBC driver mainly invokes Fastpath to obtain LOBs, because of unscientific privileges I get 1. Some bytes 2. 'E' (error about priviliges) 3. (sic!) 'S' application_name (driver throws exception) Now I analyse buffer byte after byte 4. 'Z', 00 00 00 05 69 108 (last number may be trash) It's looks like without 3 everything should be OK, so... I have question if this is intended and undocumented behaviour, or some async trashes came in, because docs says nothing about 'S'. I found this only one app server, but I don't think it makes some "background" async calls. Regards, Radosław Smogura
On Sep 5, 2011, at 7:05 AM, Radosław Smogura wrote: > Hello, > > During testing of (forked) driver we had seen following strange behaviour. JDBC driver mainly invokes Fastpath to obtainLOBs, because of unscientific privileges I get > 1. Some bytes > 2. 'E' (error about priviliges) > 3. (sic!) 'S' application_name (driver throws exception) > Now I analyse buffer byte after byte > 4. 'Z', 00 00 00 05 69 108 (last number may be trash) > > It's looks like without 3 everything should be OK, so... I have question if this is intended and undocumented behaviour,or some async trashes came in, because docs says nothing about 'S'. I found this only one app server, but I don'tthink it makes some "background" async calls. > 'S' is the Sync message. http://www.postgresql.org/docs/current/static/protocol-message-formats.html See this section to understand the role of the Sync message: http://www.postgresql.org/docs/current/static/protocol-flow.html#PROTOCOL-FLOW-EXT-QUERY John DeSoi, Ph.D.
On Mon, 5 Sep 2011 10:54:21 -0400, John DeSoi wrote: > On Sep 5, 2011, at 7:05 AM, Radosław Smogura wrote: > >> Hello, >> >> During testing of (forked) driver we had seen following strange >> behaviour. JDBC driver mainly invokes Fastpath to obtain LOBs, because >> of unscientific privileges I get >> 1. Some bytes >> 2. 'E' (error about priviliges) >> 3. (sic!) 'S' application_name (driver throws exception) >> Now I analyse buffer byte after byte >> 4. 'Z', 00 00 00 05 69 108 (last number may be trash) >> >> It's looks like without 3 everything should be OK, so... I have >> question if this is intended and undocumented behaviour, or some async >> trashes came in, because docs says nothing about 'S'. I found this >> only one app server, but I don't think it makes some "background" >> async calls. >> > > > 'S' is the Sync message. > > > http://www.postgresql.org/docs/current/static/protocol-message-formats.html > > See this section to understand the role of the Sync message: > > > http://www.postgresql.org/docs/current/static/protocol-flow.html#PROTOCOL-FLOW-EXT-QUERY > > > John DeSoi, Ph.D. No, 'S' is sent by backend, and by analysing buffered bytes I'm sure it's "ParameterStatus", even those after it ('S') I have name of one of GUC parameters, and it's (empty) value. Regards, Radosław Smogura