DataStage job abort เนื่องจากไม่สามารถ connect DB2 ได้เพราะ user "ROOT" ไม่มีสิทธิ์ select table นั้นๆ ปัญหาคือว่า ทำไมใช้ root เข้าไป connects หล่ะ? ทั้งๆที่ใน DB2 stage ก็กำหนด userid ให้อ่านจาก parameter set (oper)
Error Message:
PrepareSKAR.db2_SG1_SK_AR,1: Error Idx = 1;Cause:
DB2Driver Embedded SQL message: SQL1060N User "ROOT " does not have the CONNECT privilege. SQLSTATE=08004
;
sqlcode = -1060;
sqlstate = 08004
DB2 ใช้ user ที่ปล่อยรัน job ในการ connect และ execute sql command !?!? ส่วน user ที่กำหนดใน DB2 stage นั้นใช้ในการ authenticate เท่านั้น... เป็นข้อควรระวังอย่างยิ่ง
Solution:
ควรใช้ user เดียวกันหมด ไม่ว่าจะเป็น user ระดับ OS ที่ใช้สำหรับ login เข้ามารัน job, user ระดับ DB2 ที่มีสิทธิ์เพียงพอในการทำงาน (select, insert, delete, update เป็นต้น) กับ table ที่เกี่ยวข้อง
คงต้องลองดูว่า db อื่นๆเป็นเหมือนกันหรือเปล่า หรือเป็นแค่ DB2 เท่านั้น