[MIP-444] 미러디스크 Array Index out of range 오류 발생

Subject
미러디스크 Array Index out of range 오류 발생


APPLIES TO:
Windows 2003 R2, MCCS 2011.04.26, DK 7.1.2


SYMPTOMS

"미러디스크에서 Array Inex out of range 오류 발생
로그 내용
{quote}

11/05/08-17:07:35,734 | ror_DAgent | rDiskAgent: 98 | INFO | 리소스 온라인 시도 [Mirror_D]
11/05/08-17:07:35,734 | ror_DAgent | tractAgent: 618 | ERROR | Mirror_D 에이전트 예외 발생 : Array index out of range: 0
ArrayIndexOutOfBoundsException
java.util.Vector.remove(Unknown Source)
com.mantech.mccs.engine.agent.mirror.MirrorUtil.updateMirrorInfoFromRegistry(MirrorUtil.java:310)
com.mantech.mccs.engine.agent.mirror.WindowsMirrorDiskAgent.online(WindowsMirrorDiskAgent.java:100)
com.mantech.mccs.engine.state.GoingOnlineState.online(GoingOnlineState.java:33)
com.mantech.mccs.engine.state.StateMachine.doOnline(StateMachine.java:447)
com.mantech.mccs.engine.agent.AbstractAgent.processCommand(AbstractAgent.java:804)
com.mantech.mccs.engine.agent.AbstractAgent.run(AbstractAgent.java:610)
com.mantech.mccs.engine.agent.mirror.WindowsMirrorDiskAgent.run(WindowsMirrorDiskAgent.java:90)
java.lang.Thread.run(Unknown Source)

11/05/08-17:08:54,921 | D:\ | ror.Volume: 518 | INFO | D: 미러 상태 변경(MIRRORING => NO_MIRROR)
11/05/08-17:08:55,031 | D:\ | ror.Volume: 160 | INFO | D: 미러 롤 변경(Target => None)
11/05/08-17:08:55,140 | D:\ | ror.Volume: 160 | INFO | D: 미러 롤 변경(None => Source)
11/05/08-17:09:01,500 | D:\ | ror.Volume: 518 | INFO | D: 미러 상태 변경(NO_MIRROR => RESYNC_PENDING)
11/05/08-17:09:01,609 | D:\ | ror.Volume: 518 | INFO | D: 미러 상태 변경(RESYNC_PENDING => MIRROR_RESYNCING)
11/05/08-17:09:09,828 | D:\ | ror.Volume: 518 | INFO | D: 미러 상태 변경(MIRROR_RESYNCING => MIRRORING)
11/05/08-17:09:09,828 | D:\ | ror.Volume: 499 | INFO | D: 볼륨 상태. 미러 볼륨 페일오버 기능 활성화.
11/05/08-17:09:24,656 | -127.0.0.1 | .DbManager:3013 | INFO | 접속 끊김. (id : admin, address : 127.0.0.1)
11/05/08-17:09:34,390 | -127.0.0.1 | .DbManager:2974 | INFO | [127.0.0.1] 에서 [admin] 으로 로그인 (2011-05-08 : 17:09:34)
11/05/08-17:09:42,062 | p_SMART_RG | oupManager:1507 | ERROR | 그룹 온라인 명령 실패 [SMART_RG]
11/05/08-17:09:42,062 | p_SMART_RG | oupManager:1645 | INFO | [SMART_RG] 정리 명령
11/05/08-17:09:42,109 | ror_DAgent | tractAgent: 301 | INFO | 명령 큐에서 Mirror_D 에이전트의 flush 명령 발견
11/05/08-17:09:46,906 | icyManager | oupHandler: 132 | INFO | 콘솔의 사용자로부터 직접 [SMART_RG 온라인]명령을 받았습니다
11/05/08-17:09:47,015 | p_SMART_RG | oupManager: 446 | INFO | 그룹 온라인 시도 [smart1601-1 노드 : SMART_RG 그룹]
11/05/08-17:09:47,140 | ror_DAgent | rDiskAgent: 98 | INFO | 리소스 온라인 시도 [Mirror_D]
11/05/08-17:09:47,140 | ror_DAgent | tractAgent: 618 | ERROR | Mirror_D 에이전트 예외 발생 : Array index out of range: 0
ArrayIndexOutOfBoundsException
java.util.Vector.remove(Unknown Source)
com.mantech.mccs.engine.agent.mirror.MirrorUtil.updateMirrorInfoFromRegistry(MirrorUtil.java:310)
com.mantech.mccs.engine.agent.mirror.WindowsMirrorDiskAgent.online(WindowsMirrorDiskAgent.java:100)
com.mantech.mccs.engine.state.GoingOnlineState.online(GoingOnlineState.java:33)
com.mantech.mccs.engine.state.StateMachine.doOnline(StateMachine.java:447)
com.mantech.mccs.engine.agent.AbstractAgent.processCommand(AbstractAgent.java:804)
com.mantech.mccs.engine.agent.AbstractAgent.run(AbstractAgent.java:610)
com.mantech.mccs.engine.agent.mirror.WindowsMirrorDiskAgent.run(WindowsMirrorDiskAgent.java:90)
java.lang.Thread.run(Unknown Source)

11/05/08-17:10:42,281 | p_SMART_RG | oupManager:1507 | ERROR | 그룹 온라인 명령 실패 [SMART_RG]
11/05/08-17:10:42,281 | p_SMART_RG | oupManager:1645 | INFO | [SMART_RG] 정리 명령
11/05/08-17:10:42,281 | ror_DAgent | tractAgent: 301 | INFO | 명령 큐에서 Mirror_D 에이전트의 flush 명령 발견
11/05/08-17:10:47,140 | icyManager | rceHandler: 115 | INFO | 콘솔의 사용자로부터 직접 [Mirror_D 온라인]명령을 받았습니다
11/05/08-17:10:47,359 | ror_DAgent | rDiskAgent: 98 | INFO | 리소스 온라인 시도 [Mirror_D]
11/05/08-17:10:47,359 | ror_DAgent | tractAgent: 618 | ERROR | Mirror_D 에이전트 예외 발생 : Array index out of range: 0
ArrayIndexOutOfBoundsException
java.util.Vector.remove(Unknown Source)
com.mantech.mccs.engine.agent.mirror.MirrorUtil.updateMirrorInfoFromRegistry(MirrorUtil.java:310)
com.mantech.mccs.engine.agent.mirror.WindowsMirrorDiskAgent.online(WindowsMirrorDiskAgent.java:100)
com.mantech.mccs.engine.state.GoingOnlineState.online(GoingOnlineState.java:33)
com.mantech.mccs.engine.state.StateMachine.doOnline(StateMachine.java:447)
com.mantech.mccs.engine.agent.AbstractAgent.processCommand(AbstractAgent.java:804)
com.mantech.mccs.engine.agent.AbstractAgent.run(AbstractAgent.java:610)
com.mantech.mccs.engine.agent.mirror.WindowsMirrorDiskAgent.run(WindowsMirrorDiskAgent.java:90)
java.lang.Thread.run(Unknown Source)

11/05/08-17:10:59,328 | p_SMART_RG | oupManager:1645 | INFO | [SMART_RG] 정리 명령
11/05/08-17:11:31,765 | icyManager | rceHandler: 115 | INFO | 콘솔의 사용자로부터 직접 [Mirror_D 온라인]명령을 받았습니다
11/05/08-17:11:31,968 | ror_DAgent | rDiskAgent: 98 | INFO | 리소스 온라인 시도 [Mirror_D]
11/05/08-17:11:31,968 | ror_DAgent | tractAgent: 618 | ERROR | Mirror_D 에이전트 예외 발생 : Array index out of range: 0
ArrayIndexOutOfBoundsException
java.util.Vector.remove(Unknown Source)
com.mantech.mccs.engine.agent.mirror.MirrorUtil.updateMirrorInfoFromRegistry(MirrorUtil.java:310)
com.mantech.mccs.engine.agent.mirror.WindowsMirrorDiskAgent.online(WindowsMirrorDiskAgent.java:100)
com.mantech.mccs.engine.state.GoingOnlineState.online(GoingOnlineState.java:33)
com.mantech.mccs.engine.state.StateMachine.doOnline(StateMachine.java:447)
com.mantech.mccs.engine.agent.AbstractAgent.processCommand(AbstractAgent.java:804)
com.mantech.mccs.engine.agent.AbstractAgent.run(AbstractAgent.java:610)
com.mantech.mccs.engine.agent.mirror.WindowsMirrorDiskAgent.run(WindowsMirrorDiskAgent.java:90)
java.lang.Thread.run(Unknown Source)

11/05/08-17:12:03,468 | -127.0.0.1 | .DbManager:3013 | INFO | 접속 끊김. (id : admin, address : 127.0.0.1)

{quote}"



CAUSE
"updateMirrorInfoFromRegistry() 메소드에서 레지스트리 쿼리 이후의 Standard Output 값을 저장하는 과정에서 에러 발생.

해당 명령 역시 MCCSKEY-774 와 동일하게 MCCS 가 사용하는 임시 logs 폴더의 위치를 사용해서 가져오는 것이 실패한 것으로 보임.
"


SOLUTION
해당 이슈 resolve.