서울에 살때는 RC카를 하고 싶어도 장소가 없어서 선뜻 시작이 어려웠다.
교외로 나가자면 차를 갖고 가야하고 최소 1시간은 나가야 할듯했다.
매번 이러다 보면 그횟수가 점점 줄어들어 포기 할까봐 시작하지 않았다.
하지만 전주로 이사와서 친구 한명 없던 시간을 보내던중 새로운 취미와
취미를 핑계로 사람들을 만나고 싶기도 해서 RC를 시작 한다.
첫번째 차는 TRX-6, 두번째 차는 UDR 이다.
성향이 달라 번갈아 노는 재미가 있다.
이클립스로 스프링 프로젝트를 하다보면
java, xml 수정 할때마다 톰캣을 재기동했던 경험.
누구나 있을 것이다.
Hotswap 기능이 간절 하다.
그래서 많이 쓰던게 jRebel 인데 2018년 7월부터 유료화가되었다.
값이 1년에 2,3만원 이면 결제 하겠는데
가격이 너무 비싸서 방법을 찾던중 오픈소스 기반의 DCEVM 를
알게 되었다.
DCEVM 설치 방법은 인터넷 검색해 보면 많이 나오니
검색해 보시길.
그런데 내가 처음 설정 할땐 에러가 나서 삽질 좀 했다.
해서 내가 해결한 방법을 공유 하려고 한다.
에러내용은 아래와 같다.
HOTSWAP AGENT: 12:10:57.772 INFO (org.hotswap.agent.HotswapAgent) - Loading Hotswap agent {1.3.0} - unlimited runtime class redefinition. HOTSWAP AGENT: 12:10:58.223 ERROR (org.hotswap.agent.config.PluginRegistry) - Error in plugin initial processing for plugin package 'org.hotswap.agent.plugin' java.lang.ClassNotFoundException: org/hotswap/agent/plugin/hotswapper/HotswapperPlugin at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:278) at org.hotswap.agent.config.PluginRegistry.scanPlugins(PluginRegistry.java:89) at org.hotswap.agent.config.PluginManager.init(PluginManager.java:125) at org.hotswap.agent.HotswapAgent.premain(HotswapAgent.java:52) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:382) at sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:397) 7월 27, 2018 12:10:58 오후 org.apache.catalina.startup.Catalina addClusterRuleSet 정보: Cluster RuleSet not found due to [java.lang.ClassNotFoundException: org/apache/catalina/ha/ClusterRuleSet]. Cluster configuration disabled. 7월 27, 2018 12:10:58 오후 org.apache.catalina.startup.Catalina addClusterRuleSet 정보: Cluster RuleSet not found due to [java.lang.ClassNotFoundException: org/apache/catalina/ha/ClusterRuleSet]. Cluster configuration disabled. 7월 27, 2018 12:10:58 오후 org.apache.tomcat.util.digester.Digester startElement 심각: Begin event threw error java.lang.ExceptionInInitializerError at org.apache.catalina.mbeans.GlobalResourcesLifecycleListener.<clinit>(GlobalResourcesLifecycleListener.java:66) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at java.lang.Class.newInstance(Class.java:383) at org.apache.tomcat.util.digester.ObjectCreateRule.begin(ObjectCreateRule.java:145) at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1303) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:509) at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:182) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1343) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2786) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213) at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:648) at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1576) at org.apache.catalina.startup.Catalina.load(Catalina.java:617) at org.apache.catalina.startup.Catalina.load(Catalina.java:668) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:253) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:427) Caused by: java.lang.NullPointerException at org.apache.tomcat.util.modeler.Registry.loadDescriptors(Registry.java:766) at org.apache.catalina.mbeans.MBeanUtils.createRegistry(MBeanUtils.java:1058) at org.apache.catalina.mbeans.MBeanUtils.<clinit>(MBeanUtils.java:93) ... 28 more java.lang.ExceptionInInitializerError at org.apache.catalina.mbeans.GlobalResourcesLifecycleListener.<clinit>(GlobalResourcesLifecycleListener.java:66) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at java.lang.Class.newInstance(Class.java:383) at org.apache.tomcat.util.digester.ObjectCreateRule.begin(ObjectCreateRule.java:145) at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1303) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:509) at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:182) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1343) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2786) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213) at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:648) at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1576) at org.apache.catalina.startup.Catalina.load(Catalina.java:617) at org.apache.catalina.startup.Catalina.load(Catalina.java:668) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:253) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:427) Caused by: java.lang.NullPointerException at org.apache.tomcat.util.modeler.Registry.loadDescriptors(Registry.java:766) at org.apache.catalina.mbeans.MBeanUtils.createRegistry(MBeanUtils.java:1058) at org.apache.catalina.mbeans.MBeanUtils.<clinit>(MBeanUtils.java:93) ... 28 more
해결 방법은 jdk 버젼 문제다.
내가 설치한 버젼은 jdk1.7.0_80 인데 구글을 아주 열심히 찾아 보니
버젼 문제로 보여 jdk1.7.0_67 로 낮추니 해결 되었다.
이노무 jdk 버젼 문제...
2017년 추석... 황금연휴라 부모님께 간곡한 승낙을 받아
우리 부부는 제주도로 출발 했다!!!
사실 3월에 이미 마일리지로 발권은 해놓고 허락 못 받음
비행기표를 버릴 생각 이었다 ㅋㅋㅋ
사실 2015년에도 자전거를 가져 갔지만 비오는날 타다가
와이프 자전거의 허름한 브레가 내리막길 에서 먹통이 되어
낙차 사고가 있어 도중에 렌트카 여행으로 전환 했었다.
그 사고후 우리는 결혼을 하면서 커플 자전거를 새로 장만하고
드디어 2017년 10월 투어를 나갔다.
우여곡절도 있었으나 많이 힘든건 없었다.
역시 국내투어는 걱정 할게 없다.
여행기를 써보려 했으나 투어중 사진 찍는 것도 귀찮고
여행기 쓰는건 더 귀찮고... ㅋ
여행기는 내 마음속에 두기로 했다. ^^;
하지만 아무것도 안남기면 거시기 하니 간단한 영상 하나
올려 추억해 보기로 한다.
특정한 다른이름 으로 복원 하려문 매니지먼트 에서 제공하는 복원 기능 으로는 안된다.
아래처럼 쿼리문 으로 해야한다.
-- 백업 파일 내용 확인 RESTORE FILELISTONLY FROM DISK='D:\SPOT_HT.bak' -- 백업해둔 .BAK 파일 경로 -- 새로운 이름으로 데이터베이스 복원 RESTORE DATABASE [Spot_HT] --새롭게 복원할 DB명 FROM DISK='D:\SPOT_HT.bak' --백업해둔 .BAK 파일 경로 WITH RECOVERY, MOVE 'SP_KC_O' TO 'D:\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\Spot_HT.mdf', --MOVE 'HVI_2011'은 첫번째 LOCALNAME (PMS_Data) MOVE 'SP_KC_O_log' TO 'D:\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\Spot_HT.ldf', REPLACE --MOVE 'HVI_2011_LOG'는 2번째 LOGICALNAME (PMS_Log)
기존의 데이터베이스를 지우고 위의 명령어로 다시 만들었다면
해당 데이터베이스 연결시 에러가 날것이다.
이럴땐 아래 명령어로 해당 아이디를 업데이트 해줘야 한다.
intellij 에서 개발 할때는 문제가 없었는데 같은 소스를 이클립스로 돌려보니 java.lang.OutOfMemoryError: PermGen space
이런 에러가 발생 했다.
내장 톰캣을 쓰다보니 설정을 어떻게 해야 할지 막막 했다.
구글을 아무리 뒤져 보아도 마땅한 답이 안나온다.(내가 몰라서 그럴지도...)
결국 찾은 답은 VM option 에 -Xms2048m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=512m
이렇게 메모리 설정을 해줘야 한다.
이클립스 > Run > Debug Configurations 을 클릭하면 아래 팝업이 열린다.
나는 스프링부트 내장 톰캣을 사용하므로 Spring Boot App 에서 내가 쓰는 어플리케이션을 선택 하고
Arguments 탭의 아랫부분 Vm arguments 에 아래 내용을 추가 한다. -Xms2048m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=512m
찾아보면 별것도 아닌데 이거 찾기가 참 어렵다...
물론 내 지식이 딸려서 그런것도 있지만...
오늘은 호키티카 까지 갈 생각 입니다.
거리는 얼마 안되는데 6시쯤엔 그날의 라이딩을 끝내야 저녁 장도 보고 숙박도 잡고 하기에 6시쯤 끝내는 것이 가장 좋더라고여.
제가 짐도 많아서 하루에 최대 80km 는 절대 넘지 않으려고 루트를 설계했습니다.
그리고 뉴질랜드는 마을간 거리도 멀고 마을을 지나면 아무것도 없는 곳이 많아 마을을 기점으로 그날의 목표를 잡았습니다. 탈려면 하루에 100km도 타겠지만 머 급할거 있나여 ㅎ
이거 제자 자주 먹던 아이스크림 입니다. 뉴질랜드는 과자도 맛나고 아이스크림도 맛나고 과일도 맛나고
왜 다 맛날까여...
뉴질랜드는 거의 대부분 도로들이 왕복 2차선 입니다.위 사진의 다리는 1차선 이라 반대편에 차가 오면 다른편엔
기다려야 하지요. 제가본 많은 다리들이 저런식 입니다. 처음엔 왜 이렇게 불편하게 사나...다리 새로 만들면 되지... 하고 생각 했는데 생각해 보니 차도 그렇게 많지 않고 여기사람들은 빨리빨리 다니지도 않고 필요가 없더라 고요. 그리고 저렇게 멋진 다리들을 멀쩡한데 새로 만들 필요도 없지여.
맨날 공사만 하는 우리나라가 참 아나깝네여.
제가 점심먹은 식당인데 벌꿀 전문점 입니다. 가게안에 저렇게 벌집을 만들어 놓아 구경도 하고 꿀도 모으더라고여.
이집에서 프렌치토스트 먹었는데 빵에 꿀이 뿌려져 있었는데 엄청 맛났어여.
호키티카 에서 숙소를 찾다가 길가에서 이이정표를 보고 가격이나 물어 볼까 하고 들어갔는데
생각보다 저렴 했습니다. 대신 주방은 쓸수 없더라고여. 머 밥이야 사먹으면 되져 ㅎㅎㅎ
정원이 참 아름답네여. 정원이 좋다고 하니 사장님이 아주 기뻐하십니다.
몇일전 캠핑하면서 샌드플라이에게 공격당한 다리 입니다 ㅜㅜ
웬만한 동네들은 이렇게 한가 합니다. 차도 거의 안다니고 사람도 별로 없고.
어딜가나 참 조용 하네여. 제 스타일 입니다~
숙소를 잡고 나와서 먹음 파스타~ 이거 맛나네여.
저녁엔 역시나 와인 한잔~ ㅎ
알콜중독 될듯 하네여...
아침이 다시 밝았습니다. 전날 호키티카 isite에 물어보니 하리하리 라는 동네에 모텔및 홀팍이 있다 하여
오늘의 목표는 하리하리 입니다. 자 출발~~~
점심때쯤 도착한 로스 라는 동네 입니다.
이곳의 카페에 밥 먹으러 가보니 여행용 자전거가 엄청 많네여. 여행자의 쉼터 같은 분위기 입니다.
폭스클라시어네 가까워질 수록 사람도 많아지는 모양 입니다.
45km 남았네여 윽윽.
속도계가 없으니 내가 얼마나 오고 얼마나 남은건지 알수 없어 어렵네여 ㅜㅜ
계속 작은마을 들만 지나오다 보니 속도계 살만한 곳이 하나도 없네여.
전화 안터지는 동네도 여럿 됩니다.
이곳은 공사 할때도 안전적인 부분이 참 잘되어 있는거 같아여.
간이신호등을 만들어 놨네여.
가끔 이런 비포장 나오면 재미도 있고 좋네여.
가다가 캐나다에서 오신 할아버지를 만났는데 포스가 남다르더라고여.
하루에 150km는 가실듯 하네여. 가방엔 옷가지랑 일부 품목만 가볍게 가지고 다닌다 합니다.
웬만한건 다 카드로 해결 하는거 같아여.
저런 여행스타일도 좋을듯 합니다.
물색이 정말 신기 합니다. 이것이 바로 빙항 녹은물 입니다.
에머랄드빛깔. 자전거 멈추고 한참 구경 하고 갑니다.
물이 차가운지 함 만져 볼껄 그랬나 바여 ㅋㅋ
가다가 몇일전부터 계속 마주치던 독인인 부부와 또 만나 같이 하리하리 까지 왔습니다.
숙소도 같은 모텔로 잡았죠. 다음날 비소식이 있던데 살짝 걱정 입니다.
근데 비가 와도 내일은 우중라이딩을 할 생각 입니다.
한번은 해봐도 좋을것 같고 내일 가면 폭스글라시어에 도착 하고 그곳에서 2박3일동안 액티비티를 하며
머물 예정이라 별 부담이 없네여.
이동네엔 마트 이런거 없고 슈퍼 하나가 유일한데 요리할만한걸 팔지도 않거니와 샤워하고 오니 6시 인데도 문을
닫았네여... 너무 가정적인... ㅜㅜ
결국 맞은편 카페로 왔습니다.
오늘은 고기가 급땡겨 스테이크를 주문 합니다. 으히히히.
모텔 사장님이 주신 인터넷 이용권.
뉴질랜드는 어딜가나 대부분 저런걸 줍니다. 우리나라 처럼 인터넷이 빠르지도 않고
무료 wi-fi 도 거의 없습니다. 40MB ㅋ 너무 적네여.
몇일동안 이동거리가 많진 않지만 부지런히 탔네여.
이제 내일 폭스글라시어 가서 놀다가 버스로 와나카 호수로 갈예정 입니다.
폭스글라시어 부터는 길이 험하다는 말을 많이 들어 겁나네여 ㅎ
제가 사진을 잘 안찍는 스타일 이라 사진이 많지 않아 좀 그러네여.
사진이 없으니 여행기 쓰기가 이렇게 어려울 수가... 이젠 사진 많이 찍고 나중에 지우든 할까바여.