336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

Windows Network Load Balancing (VirtualBox & Windows2012) #2



이제 VirtualBox 의 AppTest1, AppTest2 를 설정해보겠습니다.




1. 공통설정








1.1 Server Manager 를 엽니다.





1.2 Server Manager -> Manage -> Add Roles and Features









1.3 Server Manager -> Manage -> Add Roles and Features -> Features -> Network Load Balacing : Check



1.4 Server Manager -> Manage -> Add Roles and Features -> Server Roles-> Web Server (IIS) : Check




1.5 Network Load Balancing Manager 를 엽니다.





2. AppTest 별 설정



2.1 AppTest1 을 여기까지





2.2 AppTest2 를 여기까지







2.3 AppTest1 의 IP설정을 한번 확인해봅니다


NAT 인터페이스는 자동으로 설정하여 10.0.2.15 를 부여 받았고


호스트 전용 어댑터는 # 1 에서 설정한대로 

IP 주소 : 192.168.20.11

서브넷마스크 : 255.255.255.0

게이트웨이 : 192.168.20.1

기본 설정 DNS 서버 : 192.168.20.1

로 설정합니다.


http://tansanc.tistory.com/entry/Windows-Network-Load-Balancing-VirtualBox-Windows2012-1








2.4 AppTest2 의 IP설정을 한번 확인해봅니다


NAT 인터페이스는 자동으로 설정하여 10.0.2.15 를 부여 받았고


호스트 전용 어댑터는 # 1 에서 설정한대로 

IP 주소 : 192.168.20.12

서브넷마스크 : 255.255.255.0

게이트웨이 : 192.168.20.1

기본 설정 DNS 서버 : 192.168.20.1

로 설정합니다.





336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

Windows Network Load Balancing (VirtualBox & Windows2012) #1 




VirtualBox 를 이용하여 Windows Network Load Balancing 을 테스트 해보려고 합니다.




WNLB 이라고도 부르고 NLB 라고도 부르기도 합니다.







인터넷에 자료가 없는 것은 아니지만.. Virtual Box 로 테스트하는 경우는 잘 없어서


정리해봅니다.





Network Load Balancing Overview

https://msdn.microsoft.com/ko-kr/library/hh831698(v=ws.11).aspx



Overview of Network Load Balancing

https://technet.microsoft.com/en-us/library/cc725691(v=ws.11).aspx





1. Virtual Box 에 Windows 2012 Server 2대를 설치 합니다.










2. AppTest1, AppTest2 로 두 개를 만들었습니다.













3. 네트워크 어댑터 설정을 다음 그림을 참고하여 만들어 주세요.



4.  NAT 어댑터, 호스트 전용 어댑터 각 1개씩으로 설정해줍니다.





AppTest1 설정




AppTest2 설정





4. Virtual Box 를 구동하는 컴푸터의 어댑터 들입니다. 


5. 호스트 전용 어댑터를 Virtual Box Host-Only Ethernet Adapter 에 연결하였으므로 










6. Virtual Box Host-Only Ethernet Adapter 의 IP를 확인하거나 수정해둡니다.


이 어댑터는 Virtual Box AppTest1, Virtual Box AppTest2, Client Computer(VirtualBox를 실행시키고 있는 컴퓨터)간의 통신을 위해 설정하는 것입니다.



저는 


Virtual Box AppTest1 : 

IP 주소 : 192.168.20.11

서브넷마스크 : 255.255.255.0

게이트웨이 : 192.168.20.1

기본 설정 DNS 서버 : 192.168.20.1



Virtual Box AppTest2

IP 주소 : 192.168.20.12

서브넷마스크 : 255.255.255.0

게이트웨이 : 192.168.20.1

기본 설정 DNS 서버 : 192.168.20.1


Client Computer : 

IP 주소 : 192.168.20.1

서브넷마스크 : 255.255.255.0



Load Balancing 을 위한 가상 IP : 192.168.20.13




로 설정 할 것 입니다.





7. 그래야 나중에 Client Computer 에서 테스트를 하는게 편하겠죠










[군자역] 북해도

먹거리 2017. 3. 6. 10:15 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

[군자역] 북해도



북해도는 이미 군자역 근처에서 유명한 횟집이더라구요



코스요리도 그렇게 비싸지 않고


나오는 퀄리티도 좋습니다.




한가지 아쉬운 점은 하나의 홀에 전체 좌석이 있어서 조금 소란하다는점..




주차도 가게 앞에 2~3대 정도는 가능합니다.



B코스를 시켰습니다.


































































'먹거리' 카테고리의 다른 글

[삼각지역] 영덕식당  (0) 2017.07.27
[성수동/성수역] 청년다방  (0) 2017.07.26
[장한평역/장안동/중고차매매단지] 이수사 일식  (0) 2017.03.06
[서울숲] 달빛식당  (0) 2017.02.23
[성수역] 춘하추우동  (0) 2017.02.23
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.






































3~4인용 작은 방이 많아서 조용하게 술마시기에 아주 좋습니다.




코스에 요리도 많이 나와서




저녁을 안드시고 가셔도 충분합니다.





매번 저녁을 먹고 가서.... 많이 못 먹어서..



아쉽네요...









조금 찾기 어려울수 있지만



대로변에 위치하지 않아서



바깥 소음도 적고



조용합니다.






'먹거리' 카테고리의 다른 글

[성수동/성수역] 청년다방  (0) 2017.07.26
[군자역] 북해도  (0) 2017.03.06
[서울숲] 달빛식당  (0) 2017.02.23
[성수역] 춘하추우동  (0) 2017.02.23
[성신여대] 썸띵인차이  (0) 2017.02.20
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

Java 에서


notepad.exe 를



Runtime.getRuntime().exec , ProcessBuilder 로 실행하기







notepad.exe 를 특정 폴더로 복사하고




ProcessBuilder launcher = new ProcessBuilder();

launcher.redirectErrorStream(true);

launcher.command("\\\\192.168.10.17\\tt\\notepad.exe","\\\\192.168.10.17\\tt\\test.jsp");

p = launcher.start();

 

 

 

                                       

 

p = Runtime.getRuntime().exec("\\\\192.168.10.17\\tt\\notepad.exe \\\\192.168.10.17\\tt\\test.jsp", null );

                                        


이런 형태로 실행 할때,



notepad.exe 가 실행되지 않는경우



notepad.exe 가 존재하는 폴더에 ko-KR\notepad.exe.mui 파일도 system32에서 가져와서 두면 실행이 된다.






'Programming > JAVA,JSP' 카테고리의 다른 글

window.open('xxxx.html', 'modal') close  (0) 2019.03.06
JNA Error  (0) 2018.02.27
Java CreateProcess Error=2 AccessControlException  (0) 2017.02.28
Java Applet 설정  (0) 2017.02.28
Java SocketServer control Image, DBConnect, String  (1) 2016.10.28
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

Java CreateProcess Error=2 AccessControlException 




Java 1.5 JRE 에서는 IOException CreatProcess Error=2 로 발생하고


Java 1.8 JRE 에서는 AccessControlException access denied java.io.FilePermission 으로 발생한다.






둘다, Java Permission 문제






Jre 경로에서


Jre*.*.*\lib\sercurity\java.policy 파일에




grant codeBase * {

*

}


grant {


        permission java.security.AllPermission; 를 추가하면 된다.

*

*

*

}

Java Applet 설정

Programming/JAVA,JSP 2017. 2. 28. 12:58 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

Java Applet 설정





Java Applet 구동 시





Apache 서버에




AmitApplet.java 를 AmitJavaApplication.jar 로 Export(Java->JAR file) 한다.


package test.Amit;

import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.Map;

import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class AmitApplet extends JApplet {

	public void init() {

		try {
			for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
				if ("Nimbus".equals(info.getName())) {
					javax.swing.UIManager.setLookAndFeel(info.getClassName());
					break;
				}
			}
		} catch (ClassNotFoundException ex) {
			java.util.logging.Logger.getLogger(AmitApplet.class.getName()).log(java.util.logging.Level.SEVERE, null,
					ex);
		} catch (InstantiationException ex) {
			java.util.logging.Logger.getLogger(AmitApplet.class.getName()).log(java.util.logging.Level.SEVERE, null,
					ex);
		} catch (IllegalAccessException ex) {
			java.util.logging.Logger.getLogger(AmitApplet.class.getName()).log(java.util.logging.Level.SEVERE, null,
					ex);
		} catch (javax.swing.UnsupportedLookAndFeelException ex) {
			java.util.logging.Logger.getLogger(AmitApplet.class.getName()).log(java.util.logging.Level.SEVERE, null,
					ex);
		}
		// 

		try {
			java.awt.EventQueue.invokeAndWait(new Runnable() {
				public void run() {
					initComponents();
				}
			});
		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}

	private void initComponents() {

		// String defaultCmd = "\\\\192.168.10.17\\tt\\notepad.exe";
		final String defaultCmd = "notepad.exe test.jsp";
		commandTextField = new JTextField();
		logTextArea = new JTextArea();
		runtimeButton = new JButton("getRuntime");
		processBuilderButton = new JButton("processBuilder");
		JPanel topPanel = new JPanel();

		setLayout(new BorderLayout());

		topPanel.setLayout(new GridLayout(4, 1));
		topPanel.add(new JLabel("Command"));
		topPanel.add(commandTextField);
		topPanel.add(runtimeButton);
		topPanel.add(processBuilderButton);
		add(BorderLayout.NORTH, topPanel);
		add(BorderLayout.CENTER, logTextArea);

		runtimeButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				if (commandTextField.getText().length() == 0) {
					try {
						Runtime.getRuntime().exec(defaultCmd);
					} catch (Exception e1) {
						// TODO Auto-generated catch block
						logTextArea.setText(e1.getMessage());
						e1.printStackTrace();
					}
				} else {
					try {
						Runtime.getRuntime().exec(commandTextField.getText());
					} catch (Exception e1) {
						// TODO Auto-generated catch block
						logTextArea.setText(e1.getMessage());
						e1.printStackTrace();
					}
				}
			}
		});
		processBuilderButton.addActionListener(new ActionListener() {
			public synchronized void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				if (commandTextField.getText().length() == 0) {

					try {
						ProcessBuilder launcher = new ProcessBuilder();
						Map environment = launcher.environment();
						launcher.redirectErrorStream(true);
						launcher.directory(new File("\\\\192.168.10.17\\tt\\"));

						// environment.put("test.jsp", defaultCmd);
						launcher.command("notepad.exe");
						Process p = launcher.start(); // And launch a new
														// process

					} catch (Exception e2) {
						logTextArea.setText(e2.getMessage());
						e2.printStackTrace();
					}
				} else {
					try {
						ProcessBuilder pb = new ProcessBuilder(commandTextField.getText());
						pb.start();

					} catch (Exception e1) {
						// TODO Auto-generated catch block
						logTextArea.setText(e1.getMessage());
						e1.printStackTrace();
					}
				}
			}
		});
	}

	@SuppressWarnings("unchecked")
	public void launchScript(String cmd, String args) {
		try {
			System.out.println("args value : = " + args);
			System.out.println("cmd value : = " + cmd);
			System.out.println("Full command:  = " + cmd + " " + args);
			if (cmd != null && !cmd.trim().equals("")) {
				if (args == null || args.trim().equals("")) {
					final String tempcmd = cmd;
					AccessController.doPrivileged(new PrivilegedAction() {
						public Object run() {
							try {
								Runtime.getRuntime().exec(tempcmd);
							} catch (Exception e) {
								System.out.println("Caught exception in privileged block, Exception:" + e.toString());
							}
							return null; // nothing to return
						}
					});
					System.out.println(cmd);
				} else {
					final String tempargs = args;
					final String tempcmd1 = cmd;
					AccessController.doPrivileged(new PrivilegedAction() {
						public Object run() {
							try {
								Runtime.getRuntime().exec(tempcmd1 + " " + tempargs);
							} catch (Exception e) {
								System.out.println("Caught exception in privileged block, Exception:" + e.toString());
							}
							return null; // nothing to return
						}
					});
					System.out.println(cmd + " " + args);
				}
			} else {
				System.out.println("execCmd parameter is null or empty");
			}
		} catch (Exception e) {
			System.out.println("Error executing command --> " + cmd + " (" + args + ")");
			System.out.println(e);
		}
	}

	JButton runtimeButton;
	JButton processBuilderButton;
	JTextField commandTextField;
	JTextArea logTextArea;
}






test.jsp 를 준비한다.




<%@page contentType="text/html" pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

    <head>

        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

        <title>My first WebApplication using NetBeansIDE</title>

    </head>

    <body>

        <h1>Hello World!</h1>

        <br />

        <p>WebApplication using NetBeansIDE...</p>

        

        <!-- Embedding Applet -->

<applet code="test.Amit.AmitApplet" archive="AmitJavaApplication.jar" width="400" height="350"></applet>

    </body>

</html>









Apache 는 Apache 비트에 맞는 Java 를 연결시키고


Applet 은 32비트에서 돌아간다

(컴퓨터에 32비트 Java JRE가 설치되어 있어야한다.)








Apache ROOT 폴더의 구조






Config















336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

파인드라이브 T 체험기 #2 : 파인드라이브 모드에서 내비게이션으로 활용하기




파인드라이브T는 주행 후 시동을 끌 경우 자동으로 실시간 주차감시 모드로 진입합니다.





실시간 주차감시모드에서는 주차충격이 발생 할 경우







이렇게 카카오톡 메세지로 알림을 줍니다.




내비게이션이?!


파인드라이브T는 안드로이드 운영체제에 3G/LTE 네트워크에 연결된 스마트 내비게이션이므로 가능합니다.






그런데...




만약에.. 실시간 주차감시중에는 파인드라이브T가 충전이 되지 않으니.... 장시간 방치하면 실시간 주차감시가 꺼질텐데 그럼 그때 어떤 메세지가 올까요?














배터리 부족으로 주차감시가 종료되면 메세지가 따로 오네요

[서울숲] 달빛식당

먹거리 2017. 2. 23. 16:45 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

[서울숲] 달빛식당






1인 10,000원에 삼겹살 무한리필























가격에 비해서 고기 질도 좋아보이고


가게도 깔끔하고


반찬도 깔끔하게 나왔습니다.





















[성수역] 춘하추우동

먹거리 2017. 2. 23. 16:42 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

[성수역] 춘하추우동