sqlloader5

// 使用debug命令控制是否要开启sqlload守护进程(默认开启)
            if (isOpenDaemonThread)
            {
                // 数据入库守护线程,如果子进程阻塞,会做超时(30s)中断
                Thread timeOutTh = new BasicThread()
                {
                    @Override
                    public void run()
                    {
                        try
                        {
                            if (logger.isInfoEnabled())
                            {
                                logger
                                        .info("*******************Start a oracle sqlldr daemon thread************************");
                            }
                            /**
                             * 每间隔500毫秒检查一次sqlload是否执行成功,总共最多检查60次。如果sqlload执行成功
                             * 则退出检查操作,守护进程任务结束,线程消亡。如果检查了60次,sqlload还没有执行成功
                             * 则认为sqlload进程阻塞,中断sqlload进程。
                             *
                             */
                            for (int i = 60; i >= 0; i--)
                            {
                                // 守护进程睡眠500毫秒
                                threadSleep(PROCESS_TIMEOUT);

                                // sqlload执行成功,退出检查操作
                                if (exitValue == 2 || exitValue == 0)
                                {
                                    break;
                                }
                            }

                            // 判断数据入库子线程是否执行完成,超时?
                            if (exitValue == -1)
                            {
                                isTimeOut = true;
                                if (ldr != null)
                                {
                                    ldr.destroy(); // 销毁sqlldr进程
                                }
                            }
                        }
                        catch (Exception e)
                        {
                            logger.error(
                                    "OracleSqlldr deamon thread exception", e);
                        }
                    }
                };
                timeOutTh.start();
            }

猜你喜欢

转载自sunxuecheng.iteye.com/blog/1178950
5
-5