Unable to retrieve log files on some processes[Iway 抽数后查看日志异常解决及iway日志文件介绍]

问题描述:

Iway 抽数后查看日志异常,信息如下:

 

(FOC541) SU. CENTRAL DATABASE MACHINE ERROR: S_REQ_NAME
05/10/2010 11:02:36  LOOPBACK             

(FOC236) LINKED FILE DOES NOT HAVE A MATCHING KEY FIELD OR SEGMENT: S_REQ_NAME
05/10/2010 11:02:36  LOOPBACK              BYPASSING TO END OF COMMAND

 

问题解决方案:

Here are two suggestions assuming you are running DataMigrator 7.6.

It's possible that the FDS server isn't running. On the Web Console go to Workspace> Configuration, Special Services > right click FDS and if Start is an option select it.

It's also possible that ETLLOG has grown too large. On the Web Console go to Procedures> DataMigrator Utilities > Manage Log and Statistics > Recreate

 

 

ps:日志文件的介绍

 

DataMigrator writes logs from the scheduler and flows that are run. Each record of ETLLOG is 250 bytes, and a typical log for a flow that loads a small number of rows doesn't get any errors adds about 30 records to log file.

At that rate you should be able to run over 200,000 DataMigrator flows before the log files up.


So what does fill up the log?

  • Scheduler messages. By the default the scheduler wakes up every sixty seconds and when it does it writes a line to the log file. If you've changed this default to (say) every 6 seconds, then you are getting ten times as many records from the scheduler.
  • Commit and check messages. By default DataMigrator issues a commit every 1000 rows. Every time this happens that adds two lines to the log like this:


    REFERENCE...AT TRANS 1000 Commit forced at:
    1000 for 1000 row(s)

    However if a table is loading a million rows, that's adding 2,000 rows to the log. But for a table that large committing every 1,000 rows may be more often than is needed. Increasing the commit size (Target Properties ► Commit every ___ rows) reduces the number of rows written to the log and may improve throughput.

    But what if you want to keep the commit size small but just want to get rid of the messages? You can do that with the following two commands in a pre-extract stored procedure.


    SET MESSAGE=OFFSET EMGSRV=OFF

    But a warning: some error messages are also disabled, so if there are problems with the flow, you may need to remove these settings to diagnose them.
  • Rejected row messages. When the "key matching logic" option "include duplicates" is used with a relational database target, duplicate rows still can't be inserted into a table if there is a unique constraint. Instead the Relational datababase rejects the rows. But when it does, it returns error messages which the server sends to the log. For a single row that gets a constraint violation there are about five rows written to the log. For example, from MS SQL Server:


    (FOC1400)SQLCODE IS 2601 (HEX: 00000A29) XOPEN: 23000
    : Microsoft OLE DBProvider for SQL Server: [23000] Cannot insert duplicat: e key rowin object 'dmrpts' with unique index 'dmrpts'. [01000] The sta: tement has been terminated.(FOC1416) EXECUTE ERROR : DMRPTS

    If a log is filling up with these types of messages, then something is wrong. Did you forget to truncate the target table first? Do you have enough key columns specified to uniquely identify each row? Do you need to use key matching logic to update the target table?

    However if there are thousands of rows being rejected you probably dont' need to see an error message for each and every one of them. In fact you can cause the job to fail after a certain number of rows are rejected. To do so go to Flow Properties ►Execution ► Stop processing after ____ DBMS errors.

    It's possible I suppose that rejected rows are an expected part of the load and you don't need to see them all. In that cases it's possible to let the job continue and just suppress the messages. To do so Include in profile or stored procedure the ilne:


    SET DBMSMSGLIMIT=nnnn

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值