起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 638|回复: 17

tomcat报错

[复制链接]
发表于 2010-8-9 11:26:02 | 显示全部楼层 |阅读模式
at java.lang.Thread.run(Thread.java:595)
CommandText: SELECT FGUID,FWARNINGTIME,FSUBJECT,FPLANSTARTTIME FROM TTASK WHERE
TTASK.FGUID IN(SELECT TTASKMESSAGE.FTASKGUID FROM TTASKMESSAGE WHERE (TTASKMESSA
GE.FSTATE IN('tmsSend', 'tmsReceived', 'tmsProcessing')) AND (TTASKMESSAGE.FRORG
URL IN('\ROOT\XYJT.OGN\ZQXYMTCZZYXGS.OGN\SCWLZX.OGN\TWBZZB.DPT\TWBPTB.DPT\FKZ.PT
M\07M03700.PSM') OR (TTASKMESSAGE.FRPERSON = '07M03700'))) ANDROWNUM <=0 AND TTA
SK.FWARNINGTIME is not null ORDER BY TTASK.FWARNINGTIME
2010-8-9 8:57:14 com.caucho.hessian.server.HessianSkeleton invoke
警告: java.lang.Exception: error occur during invoke getRecords method, ORA-0093
3: SQL command not properly ended

java.lang.Exception: error occur during invoke getRecords method, ORA-00933: SQL
command not properly ended

        at com.justep.service.action.database.GetRecordsAction.doExecute(Unknown
Source)

正确的SQL 应该 是:
  SELECT FGUID, FWARNINGTIME, FSUBJECT, FPLANSTARTTIME  FROM TTASK
WHERE TTASK.FGUID IN
       (SELECT TTASKMESSAGE.FTASKGUID
          FROM TTASKMESSAGE
         WHERE (TTASKMESSAGE.FSTATE IN ('tmsSend', 'tmsReceived', 'tmsProcessing'))
           AND (TTASKMESSAGE.FRORGURL IN ('\ROOT\XYJT.OGN\ZQXYMTCZZYXGS.OGN\SCWLZX.OGN\TWBZZB.DPT\TWBPTB.DPT\FKZ.PT
M\07M03700.PSM') OR (TTASKMESSAGE.FRPERSON = '07M03700'))) AND ROWNUM <= 0
   AND TTASK.FWARNINGTIME is not null
ORDER BY TTASK.FWARNINGTIME

  记忆中这句SQL不是我们写的。应该 是平台的。请确认下。
回复

使用道具 举报

发表于 2010-8-9 13:59:40 | 显示全部楼层
具体 是在做什么操作 时候报出来的 此错误
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-8-9 14:12:23 | 显示全部楼层
“  具体 是在做什么操作 时候报出来的 此错误”
不知道,这个错是从 TOMCAT 里面 复制出来的。
回复 支持 反对

使用道具 举报

发表于 2010-8-9 14:46:54 | 显示全部楼层
最好是能知道 是做什么操作的时候报的这个错误。
AND ROWNUM <=0 这种sql写法只针对 oracle才有效的,sql是无效的,平台 不应该会发此类sql
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-8-9 14:53:07 | 显示全部楼层
什么操作出现的这个错,还真的不知道(因客户端太多)。

意思是说,这SQL应该是我们自己写的?但在记忆中我们没有写这样的SQL。

我再仔细看看。
回复 支持 反对

使用道具 举报

发表于 2010-8-9 15:16:30 | 显示全部楼层
恩,可以这样,把 你当前的 库备份出来,然后找个 其他的机器,部署起来一个测试环境,然后看看是否可以重现此问题。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-8-24 10:45:10 | 显示全部楼层
查了我们所有的代码,都没有写1楼的SQL。
1楼的SQL与"任务中心信息"的这个SQL类似:
procedure TTASKCENTERINFO.InitTaskIndexDataSet;
var
  I: Integer;
  lTaskFileds: string;
begin
  lTaskFileds := 'FTYPENAME, FPRIORITY, FSUBJECT, FFLOWGUID, FBizID, FBIZKIND, ' + ////SMP20080730 加入BIZKIND业务类型,这个列是用来分组的要带着!
    'FSPERSON, FSPERSONNAME, FRPERSONNAMES, FSTARTTIME, FFINISHTIME, FLIMITTIME, FWARNINGTIME, ' +
    'FPARTYNAME, FPLANNAME, FPLAN, FPROJECTNAME, FPROJECT, FSOGNNAME, FSDEPTNAME, FSPOSITIONNAME, ' +
    'FSTATE, FLASTCHANGETIME, FCREATETIME, FPLANSTARTTIME, ' +
    'FPLANFINISHTIME, FDISTRIBUTETIME, TTASK.FPARTY, ' +
    // for task load
    'FGUID, FTYPE, FFUNCURL, FUPDATEFLAG, FPROCURL, FDESCRIPTION, FISANONYMITY ';
  if Assigned(FOnGetTaskFieldsEvent) then
    FOnGetTaskFieldsEvent(lTaskFileds);
//SMP Add In条件,20080808不应该显示子流程任务和控制任务等非处理类型的任务S
  DataSetTaskIndex.SQL.Text := SysUtils.Format('SELECT %s FROM TTASK ' +
    ' WHERE FGROUPGUID = ''-1'' AND (FKIND in (''ftkActivity'', ''ftkReturn'', ''ftkTransmit'', '
    +' ''ftkNotify'', ''ftkGroup'', '''', ''ftkHasten'') or FKIND IS NULL) ORDER BY FCREATETIME DESC', [lTaskFileds]);
  DataSetTaskIndex.Order := 'FCREATETIME desc';

  DataSetTaskIndex.FilterFields.Clear;
  for I := Low(BrowseFieldNames) to High(BrowseFieldNames) do
    DataSetTaskIndex.FilterFields.Add(BrowseFieldNames[I]);
  DataSetTaskIndex.FilterFields.Add('FBIZID');
  DataSetTaskIndex.FilterFields.Add('FNEEDPROCESS');
end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-8-24 11:52:42 | 显示全部楼层
??????
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-8-24 17:53:08 | 显示全部楼层
????????????????????????
回复 支持 反对

使用道具 举报

发表于 2010-8-24 18:45:40 | 显示全部楼层
楼主,已经在与平台组沟通此问题。
有结果后跟帖告知。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-6 18:01 , Processed in 0.042974 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表