I'm getting flaky behaviour from one query. It will fail with a tds token error, but
it cannot be recreated on the next run for the same data. To wit:
20030803.02:01:34: Portia::Utils::portfolioInfo
: Cannot execute statement
: 1>
: 2> select pmf_id = id
: 3> ,symbol = symbol
: 4> ,portfolio = portfolio
: 5> ,account_no = pmf_string_06
: 6> ,fiscal_begin = convert(varchar,fiscal_begin,101)
: 7> ,acct_period_end = acct_period_end
: 8> ,live_on_portia = convert(varchar,pmf_date_03,101)
: 9> ,live_on_portia_plus = convert(varchar,pmf_date_04,101)
: 10> from pmf
: 11> where system_stat = 0
: 12> and symbol = '10008'
: 13> order by pmf_id desc
: DBMS => Sybase
: err => 28
: execute_retval =>
: handleType => statement
: OpenClient message: LAYER = (4) ORIGIN = (1) SEVERITY = (5) NUMBER
= (28)
: Message String: ct_results(): protocol specific layer: external
error: There is a tds protocol error. An illegal token was received.
: Stopped
: => at /am/common/lib/site_perl/5.6.1/Portia/Utils.pm line 431
Perl 5.6.1
Adaptive Server Enterprise/12.0.0.7/P/EBF 10869 ROLLUP/Sun_svr4/OS
5.6/1996/32bit/FBO/Fri Feb 21 03:19:58 2003
DBD::Sybase 1.00
DBI 1.37
I had similar problems with the same query for a while under perl 5.004, but the error
message was to the effect that no statement was executing, when the statement did
execute and there
was data to be found. I worked around that in my code by ignoring the error if I had
data, but this is entirely different.
The funny thing is, it feels like a timing issue - I am running consecutive queries
too fast. I know that sounds nuts, but when the server is bogged down, I never get
these problems - only
when the server is real quiet and this is basically the only process running.
--
Matthew