JACE8000 Web8000 Osupdate Forced, Faild to run niagarad in controller

이미지
개요 Niagara Framework는 AX 라는 3버전대부터 N4라는 4버전대에 이르는 현재까지  꾸준이 개발되어지고 있고 믿을 수 있는 프레임워크다.  하지만 너무 빠른 개발속도와 변화로 버전간에 불편한 상황이 발생하곤 한다.  이 내용은 컨트롤러에서 NiagaraD가 실행되지 않을 떄 할 수 있는 조치사항이다.  NiagaraD가 실행되지 않으면 플렛폼에 접속할 수 없으며 그럼 많은 제약이 생긴다 Contents problem 문제발견 WARNING [14:28:07 15-Mar-2022] [tid = 1] niagarad: /opt/niagara/bin/nreVersion.xml does not exist, reverting to fallback values ERROR   [14:28:21 15-Mar-2022] [tid = 1] niagarad: policy file verification failed. Policy files may have been tampered with. Cause is: [/opt/niagara/security/policy/java.security failed signing verification] ERROR   [14:28:21 15-Mar-2022] [tid = 1] niagarad: throwable occurred while initializing daemon (java.lang.SecurityException), can not continue sysmon: niagarad is no longer running 콘솔로 접속하면 위와같은 메시지가 나타나며 데몬이 죽는다.  Niagarad 가 죽으면 Platform에 접속을 할 수 없고 많은 제약이 따른다.  이런 사례들이 종종 있음을 확인했고 시간을좀 당기면 해결된다는 케이스도 있었지만 ...

HP 컴퓨터 파일 무한증식 버그 , 윈도우10 프리징(Windows\temp)

이미지
개요 윈도우이용시 마우스가 갑자기 멈춘다거나, 내컴퓨터는 분명 빠른데 프로그램을 실행하면 한세월뒤 실행되거나..이러한 증상을 "윈도우 프리징" 이라한다. HP Workstation을 이용중 프리징 현상으로 고생한 내용을 공유한다. 길지만 유용한(?) 과정설명과 빠른 결과로 나누어 작성했다.  바쁜 직장인을 위한 결론은 제일 하단에 있다.  Contents 프리징 파악 나의 경우는 주기적으로 PC가 엄청나게 느려지며 어떠한 프로그램이던간에 실행하면 5분씩 걸리는 기이한 현상이었다. (Explorer, Chrome, 탐색기, 작업관리자 등...) 어찌저찌 시간을 기달려 작업관리자가 실행되어도 CPU, RAM, Hdd-IO, Network  모두 평온한 상태로 모니터링 되었다. (물론 믿을 수 없는 상황) PC를 리부팅후 바로 TaskManager를 실행하여 모니터링 중 기이한 현상을 캐치함. Hdd IO를 100 쓰다가말고 갑자기 사용하지 않는듯 모니터링 되는 모습을 발견했고  직감적으로 TaskManager가 감당 못할정도의 IO가 일어나고 있다고 판단. Hdd 용량을 모니터링 하기위해 TreeSize를 설치했다.  문제 해결단계 1 (용량확보) 하드가 비정상적으로 사용됨을 감지하고 하드의 용량을 구체적으로 모니터링하기 위해 TreeSize를 설치했고 Windows\Temp안에 380G의 터무니없는 용량을 확인할 수 있었다.  재밌는것은 Windows 탐색기의 속성으로는 이 용량을 확인할 수 없었다는 것이다.  <Hdd용량 비교, TreeSize(375G) vs Explorer탐색기(27G)> 일단 Windows\Temp안의 내용물을 최대한 보존하면서(분석을 위해)  어떻게든 Hdd의 용량을 확보하여 PC를 사용할 수 있는 상태로 만드는게...

JAVA JVM 옵션에 대한 이해

개요 JVM 구동 옵션들은 사실 무진장 많다 그중 N4에서 사용할 수 있는 xss xmx xms 에 대해 알아본다 Contents -XSS 옵션 JAVA에서 쓰래드가 갖는 스택의 최대 크기를 설정한다. 즉 커지면 커질수록 한 쓰래드가 갖는 메모리 크기는 커지지만  시스템이 지원할 수 있는 쓰래드 갯수는 줄어든다. -XMX 옵션 JVM에서 프로세스가 사용할 수 있는 최대 메모리의 크기를 설정 -XSS 옵션 JVM에서 프로세스가 시작과 동시에 할당되는 메모리의 양을 설정 java -Xms256m -Xmx2048m 위의 예제는 Java프로세서가 256M의 메모리로 시작하고 최대 2048M의  메모리를 사용할 수 있음을 설정한다. 참조 Tech Doc: https://www.ibm.com/docs/en/ztpf/1.1.0.15?topic=options-xss-option Article: https://itecnote.com/tecnote/java-what-are-the-xms-and-xmx-parameters-when-starting-jvm/ Forum: https://www.edureka.co/community/162467/what-are-the-xms-and-xmx-parameters-when-starting-jvm

Signing in ProgramObject

이미지
개요 NiagaraFramework에 4.9이후부터 보안에대해 더 엄격해졌다.  모듈에는 Digital sign이 의무화 되는 상태로 서명된 모듈만 이용하게 바뀌고있다. 3RD party IDE를 통해 개발할때의 sign방법과 WB내의 ProgramObject에서 개발할때 sign하는 방법이 있는데 본 글에서는 ProgramObject에self sign하는 방법을 기술한다. 구체적인 검색을위해서는 " Configuring Workbench to sign program objects"  를 이용해 검색한다. Contents 1단계 서명할 인증서 만들기 workbench > tool > certificate Management 하단의 new를 이용하여 새 인증서를 만든다. < workbench의 certificate Management > 확인을 누르고 패스워드를 입력한다.  2단계 : jar에 인증서 넣고 서명하기 workbench > tools > Jar Signer Tool 사인하고자 하는 jar모듈을 선택하고 만든 인증서를 선택한다. 1단계에서 입력한 인증서와 암호를 입력하고 사인할 모듈을 선택하여 넣는다.  사인을 넣은 모듈은 WB에서 사용하고 있는 모듈일 가능성이 높다.  사용중인 모듈이므로 그대로 덮어쓸 수 없으니 다른 폴더에 넣는다. 3단계 : 인증서를 신뢰할 수 있는 저장소에 등록  모듈에 서명만 한다고 안전하다고 판단하지 않는다.  서명자체가 안전한 인증서인지 등록해주어야한다.  안전한 인증서임을 등록하기위해 먼저 내가만든 인증서를 Export 해준다.  패스워드를 넣고 OK를 누르면 pem 파일을 만들 수 있다.  생성된 P...

Change BCPBacnet and Honeywell Spyder to regular and standard Spider Bacnet

개요 BCPBacnetNetwork로 설정된 네트워크 및 디바이스를 적절한 오리지날  Bacnet으로 바꾸는 방법에 대해 기술한다.  또한 오리지날Bacnet뿐 아니라 SpyderBacnet으로 바꾸는 방법도 기술한다. 기 구축된 스테이션을 GUI를 이용하여 수정하기는 굉장한 노력이 필요하며 휴먼에러에 큰 리스크를 갖는다. 조금더 전문적인 기술이 필요하지만 휴먼에러를 줄일 수 있고 작업시간도 빠를 수 있도록 config.bog를 수정하는 방법에 대해 기술한다. 본 케이스는 엔지니어가 부족한 지식으로 시운전 하였을경우 생기는 경우로 특수한 현장에 해당한다.  수정방법은 xml과 PX의 동작 메커니즘을 이해하고 있다는 전제로 기술한다.  잘못 수정할경우 Station이 읽히지 않으므로 백업 후 진행하기 바란다.  Contents Network변경 변경 및 추가    bcs3:BcpBacnetNetwork -> bac:BacnetNetwork 로 변경   bcs3:BcpBacnetTuningPolicy -> bac:BacnetTuningPolicy 로 변경   m="bac=bacnet"을 추가하여 bac정의 삭제   bcsv3$3aBcpBacnetNetwork; Device 변경 bacnetDevice를 SpyderDevice로 변경하는 법 <!-- /Services/UserService/BACnet --> 밑에 아래의 태그삽입 <p n="version" v="SPYDER:1484009035654"/> 디바이스 정보를 아래와같이 수정   <p n="BACnetSpyder1" h="7002d" m="honbs=honeywellBacnetSpyder" t="honbs:Bac...

Restoring An Unreachable JACE that fails to boot (JACE300,JACE600 and ETC AX Versions)

이미지
개요 이 문서는 AX버전의 JACE3와 6에대한 공장초기화 방법을 설명한다.  또한 예상되는 JACE3와6의 물리적 구조를 적는다. 공장초기화 방법에는 두가지가있다.  1. FTP서비스를 기동하여 이미지를 넣고 osupdate명령으로 초기화 하는 방법 2. sendnto.exe를 이용하여 serial접속만으로 이미지를 넣고 초기화 하는 방법 Legacy JACE can enter a state where the platform and station connections can not be made. In some cases, these JACE will not boot to a state where the procedures for restoring an unreachable JACE can be applied. Contents Factory init use FTP (Use Ethernet) 1. Putty나 Terminal 프로그램을 이용하여 Serial접속한다.(115200) 2. 로그인하고 ftp를 기동시킨다.  3. JACE의 /tmp 폴더안에 맞는 버전의 osImage를 넣는다.(Niagara의 cleanDist폴더 참고) 4. JACE의 /ffs0/zip 폴더안에 clean.tar.gz 를 넣는다.  5. 콘솔에서 sh를 입력하면 shell command모드로 들어갈 수 있으며, osupdate명령을 실행한다.  6. exit하여 메뉴로 돌아가고 7번메뉴로 리부팅을 한다. (shutdown) 자세한 설명은 아래의 문서를 참고한다.  https://drive.google.com/file/d/1_jDLUQ2VoMqZ8_81TRx-2Dq8QPEHEBuS/view?usp=sharing Factory init use sendNto.exe (Use Serial) 1...

Create file using command in DOS or Linux (default command)

이미지
개요 노트패드나 VI에디터같은 툴이 없을때 기본명령만으로 파일을 에디트 해야할때가 있다. 이런때 사용할 수 있는 명령어다.  Sometimes, You have to edit files without use GUI or tools like notepad or VI editors in a restricted environment. I'll show you how to create a file just using the default command in Linux or DOS systems. Contents DOS Command (Copy con filename) c:\>copy con filename.txt (enter) desc~~~~~~ textdesc~~~ Ctrl+Z Linux Command (Cat >filename) #cat >filename (enter) desc~~~~~~ textdesc~~~ Ctrl+D 참조 내용 : http://andrewault.blogspot.com/2008/03/unix-equivalent-of-dos-copy-con.html