Microsoft PowerPoint - 18-DataSource.ppt

Size: px
Start display at page:

Download "Microsoft PowerPoint - 18-DataSource.ppt"

Transcription

1 18 장 : JDBC DataSource DataSource JDBC 2.0의 javax.sql 패키지에포함되어도입됨 DataSource 인터페이스는데이터베이스커넥션을만들거나사용하는데좀더유연한아키텍처를제공하기위해도입됨 DataSource를이용할경우, 클라이언트코드는한줄도바꾸지않고서도다른데이터베이스에접속할수있도록해줌 즉 DataSource 는커넥션상세사항들을캡슐화 DataSource 인터페이스구현방식에따른클래스타입들 기본적인 DataSource 클래스 javax.sql.datasource 인터페이스를구현함 커넥션풀링기능을갖추고있는 DataSource 클래스 javax.sql.connectionpooldatasource 인터페이스를구현함 분산트랜잭션을지원하는 DataSource 클래스 ( 14 장 ) javax.sql.xadatasource 인터페이스를구현함 한밭대학교정보통신 - 컴퓨터공학부김영찬교수 1/38 Standalone DataSource 사용하기 1 Standalone DataSource 객체사용하기 (Oracle) DriverManager보다는 DataSource사용을권장함 DataSource 사용하여 Connection 객체생성하기 ( datasource/datasourcetestoracle.java)... import oracle.jdbc.pool.oracledatasource; OracleDataSource ds = new OracleDataSource(); ds.seturl("jdbc:oracle:thin:@xtreme.hanbat.ac.kr:1521:xtrm"); ds.setuser("student"); ds.setpassword("xxxx"); // Connect to the local database Connection conn = ds.getconnection(); // Query the employee names Statement stmt = conn.createstatement();... DriverManager Class.forName("jdbc.driver.OracleDriver"); String url = "jdbc:oracle:thin:@xtreme.hanbat.ac.kr:1521:xtrm"; String user = "student"; Stirng password = "xxxx"; Connection conn = DriverManager.getConnection(url, user, password); Statement stmt = conn.createstatement(); 한밭대학교정보통신 - 컴퓨터공학부김영찬교수 2/38

2 Standalone DataSource 사용하기 2 Standalone DataSource 객체사용하기 (Derby) DriverManager보다는 DataSource사용을권장함 DataSource 사용하여 Connection 객체생성하기 ( datasource/datasourcetestderby.java)... import org.apache.derby.jdbc.embeddeddatasource; EmbeddedDataSource ds = new EmbeddedDataSource(); ds.setdatabasename( d:/derby/databases/wrox4370.db"); // Connect to the local database Connection conn = ds.getconnection(); // Query the employee names Statement stmt = conn.createstatement();... DriverManager Class.forName("org.apache.derby.jdbc.EmbeddedDriver"); String url = "jdbc:derby:d:/derby/databases/wrox4370.db"; Connection conn = DriverManager.getConnection(url); Statement stmt = conn.createstatement(); 한밭대학교정보통신 - 컴퓨터공학부김영찬교수 3/38 Client/Server DataSource 객체의작동방식 context.bind( MusicStore, oracledatasource) DataSource ds = (DataSource) context.lookup( MusicStore ) LDAP Server Client Connection conn = ds.getconnection(); Oracle DBMS 한밭대학교정보통신 - 컴퓨터공학부김영찬교수 4/38

3 Client/Server DataSource 사용하기 ( 서버측 ) 준비사항 DataSource 객체를생성해서디렉토리에바인딩해야함 이런일들은대개데이터베이스관리자가하게됨 Hashtable<String,String> env = new Hashtable<String,String>(); env.put( Context.INITIAL_CONTEXT_FACTORY, com.sun.jndi.fscontext.reffscontextfactory ); env.put( Context.PROVIDER_URL, file:/d:/java/jndi/derby ); Context ctx = new InitialContext(env); EmbeddedDataSource ds = new EmbeddedDataSource(); ds.setdatabasename( d:/derby/databases/wrox4370.db ); ctx.rebind( jdbc/musicstore, ds); ( 클라이언트측 ) 사용방법 Hashtable<String,String> env = new Hashtable<String,String>(); env.put( Context.INITIAL_CONTEXT_FACTORY, com.sun.jndi.fscontext.reffscontextfactory ); env.put( Context.PROVIDER_URL, file:/d:/java/jndi/derby ); Context ctx = new InitialContext(env); DataSource ds = (DataSource) ctx.lookup( jdbc/musicstore ); Connection connection = ds.getconnection(); 한밭대학교정보통신 - 컴퓨터공학부김영찬교수 5/38 디렉토리 (Directory) 디렉토리개요 DataSource는대개컨텍스트 (context) 안에서룩업 (lookup) 을실행해서얻어내는경우가많음 컨텍스트는이름과자원을결합시킨다는뜻임 컨텍스트예 : 디렉토리 LDAP (Lightweight Directory Access Protocol) Active Directory X.500 File System ( 서버관점 ) DataSource 객체를생성한다음, 그객체를디렉토리에바인드 (bind) 함 바인드한다는것 (binding) 은디렉토리에게특정한이름을특정한자원과결합하라고명령하는행동임 전화디렉토리 ( 전화번호부 ): 어떤사람의주소와전화번호에대한정보를그사람의이름과바인드함 파일시스템 : Store01.java라는파일을생성하는경우, 파일내용에해당하는수많은바이트들을하드디스크에기록한다음, Store01.java라는이름과바인드하는것임 JDBC가 DBMS 중립적인인터페이스를제공하듯이 JNDI(Java Naming and Directory Interface) 는디렉토리서버중립적인인터페이스를제공함 한밭대학교정보통신 - 컴퓨터공학부김영찬교수 6/38

4 실습해보기 DataSource 를사용하기위해셋팅하기 필요한라이브러리 JDKv1.4 이상 JNDI 와아래와같은 4 개의서비스제공자를기본적으로포함하고있음 ( 즉 jndi1_2_1.zip 를설치할필요가없음 ) LDAP Server Provider COS Naming Service Provider RMI Registry Service Provider DNS Service Provider JDKv1.3 JNDI 와아래와같은 3 개의서비스제공자를기본적으로포함하고있음 ( 즉 jndi1_2_1.zip 를설치할필요가없음 ) LDAP Server Provider COS Naming Service Provider RMI Registry Service Provider JDKv1.2 JNDI 와아래와같은 1 개의서비스제공자를기본적으로포함하고있음 ( 즉 jndi1_2_1.zip 를설치할필요가없음 ) COS Naming Service Provider ( 사용할경우 ) 필요한라이브러리 File System Service Provider (fscontext1_2beta3.zip)» Lib 폴더밑의 fscontext.jar, providerutil.jar 를 c:\java\lib 로복사한다. 한밭대학교정보통신 - 컴퓨터공학부김영찬교수 7/38 실습해보기 FileSystem-Oracle 용 DataSource 만들기 DataSource 객체를저장 / 사용하기위한디렉토리서버 File System (JNDI File System Service Provider) DBMS Oracle 한밭대학교정보통신 - 컴퓨터공학부김영찬교수 8/38

5 실습해보기 FileSystem-Oracle 용서버측프로퍼티파일 DataSource-FileSystem-Oracle.properties 871 page # DataSource-FileSystem-Oracle.properties # Oracle # drvname = "oracle.jdbc.driver.oracledriver" # srcurl = "jdbc:oracle:thin:@xtreme.hanbat.ac.kr:1521:xtrm" datasource.factory=com.sun.jndi.fscontext.reffscontextfactory datasource.url=file:/d:/java/jndi/oracle datasource.bindname=jdbc/musicstore datasource.username=student 자신의오라클계정이름 datasource.password=xxxxxx 자신의오라클패스워드 datasource.server=xtreme.hanbat.ac.kr datasource.port=1521 datasource.drivertype=thin datasource.netprotocol=tcp datasource.databasename=xtrm 준비작업 d:\java\jndi\oracle 디렉토리를생성함 한밭대학교정보통신 - 컴퓨터공학부김영찬교수 9/38 실습해보기 FileSystem-Oracle 용 DataSourceServer 1 DataSourceFileSystemOracle.java (1/2) page package datasource; import java.sql.*; import javax.sql.*; import javax.naming.*; import java.util.*; import oracle.jdbc.pool.oracledatasource; public class DataSourceFileSystemOracle { static ResourceBundle bundle = ResourceBundle.getBundle( datasource.datasource-filesystem-oracle ); public static void main(string[] args) { try { // create and store parameters which are used to create the context Hashtable<String,String> env = new Hashtable<String,String>(); env.put(context.initial_context_factory, bundle.getstring("datasource.factory")); env.put(context.provider_url, bundle.getstring("datasource.url")); // create the context Context context = new InitialContext(env); 한밭대학교정보통신 - 컴퓨터공학부김영찬교수 10/38

6 실습해보기 FileSystem-Oracle 용 DataSourceServer 2 DataSourceFileServerOracle.java (2/2) // Create a DataSource object OracleDataSource datasource = new OracleDataSource(); // set the connection parameters String s; s = bundle.getstring("datasource.username"); datasource.setuser(s); s = bundle.getstring("datasource.password"); datasource.setpassword(s); s = bundle.getstring("datasource.drivertype"); datasource.setdrivertype(s); s = bundle.getstring("datasource.netprotocol"); datasource.setnetworkprotocol(s); s = bundle.getstring("datasource.server"); datasource.setservername(s); s = bundle.getstring("datasource.databasename"); datasource.setdatabasename(s); datasource.setportnumber(getport()); String bindname = bundle.getstring("datasource.bindname"); context.rebind(bindname, datasource); System.out.println("DataSource completed"); catch (Exception e) { e.printstacktrace(); static int getport() throws NumberFormatException { String s = bundle.getstring("datasource.port"); return Integer.parseInt(s); 한밭대학교정보통신 - 컴퓨터공학부김영찬교수 11/38 실습해보기 FileSystem-Oracle 용 DataSourceServer 3 DataSourceFileSystemOracle.java 컴파일하기 d:> cd d:\begjavadb\ch18 d:> javac datasource/datasourcefilesystemoracle.java DataSourceFileSytemOracle 실행하기 d:> cd d:\begjavadb\ch18 d:> java datasource.datasourcefilesystemoracle d:\java\jndi\oracle 폴더밑에만들어진.bindings 파일을 notepad로열어내용확인 한밭대학교정보통신 - 컴퓨터공학부김영찬교수 12/38

7 실습해보기 클라이언트측프로퍼티파일 MusicStore-FileSystem-Oracle.properties 879 page # MusicStore-FileSystem-Oracle.properties datasource.factory=com.sun.jndi.fscontext.reffscontextfactory datasource.url=file:/d:/java/jndi/oracle datasource.bindname=jdbc/musicstore 준비작업 d:\begjavadb\ch18\datasource 에서아래명령을수행함 copy MusicStore-FileSystem-oracle.properties MusicStore.properties 한밭대학교정보통신 - 컴퓨터공학부김영찬교수 13/38 실습해보기 DataSourceClient DataSourceClient.java ( 교재에있는소스를다음과같이수정하는것이필요함 ) 878 page package datasource; import java.sql.*; import javax.sql.*; import javax.naming.*; import java.util.*; public class DataSourceClient { private static ResourceBundle bundle = ResourceBundle.getBundle( datasource.musicstore ); private DataSource datasource; public DataSourceClient() { Context context; try { Hashtable<String,String> env = new Hashtable<String,String>(); env.put(context.initial_context_factory, bundle.getstring("datasource.factory")); env.put(context.provider_url, bundle.getstring("datasource.url")); context = new InitialContext(env); String bindname = bundle.getstring("datasource.bindname"); datasource = (DataSource) context.lookup(bindname); catch (Exception e) { e.printstacktrace(); public Connection getconnection() throws SQLException { return datasource.getconnection(); 한밭대학교정보통신 - 컴퓨터공학부김영찬교수 14/38

8 실습해보기 DataSourceClient 컴파일하기 DataSourceClient.java 컴파일하기 앞의소스파일을 d:\begjavadb\ch18\datasource\datasourceclient.java 파일로저장 d:> cd d:\begjavadb\ch18 d:> javac datasource/datasourceclient.java DataSourceClient 실행하기 d:> cd d:\begjavadb\ch18 d:> java datasource.datasourceclient 한밭대학교정보통신 - 컴퓨터공학부김영찬교수 15/38 실습해보기 Store 클래스와함께 DataSource 이용하기 connections/storeds.java pages... import datasource.*;... DataSourceClient ds = new DataSourceClient(); Connection conn = ds.getconnection();... connections/storeds.java 컴파일하기 소스파일을 d:\begjavadb\ch18\connections\storeds.java 파일로저장 d:> cd d:\begjavadb\ch18 d:> javac connections/storeds.java 한밭대학교정보통신 - 컴퓨터공학부김영찬교수 16/38

9 실습해보기 TestStoreDS 1 connections/teststoreds.java 884 page package connections; public class TestStoreDS { public static void main(string[] args) { String id = "4"; StoreDS store = new StoreDS(); boolean result = store.findbyprimarykey(id); if (result) { System.out.println("Store retrieved"); System.out.println("Store details: n" + store.tostring()); else { System.out.println("Store NOT retrieved"); 한밭대학교정보통신 - 컴퓨터공학부김영찬교수 17/38 실습해보기 TestStoreDS 2 connections/teststoreds.java 컴파일하기한후실행하기 소스파일을 d:\begjavadb\ch18\connections\teststoreds.java 파일로저장 d:> cd d:\begjavadb\ch18 d:> javac connections/teststoreds.java d:> java connections.teststoreds 한밭대학교정보통신 - 컴퓨터공학부김영찬교수 18/38

10 FileSystem-Derby 에맞도록변경하기 DataSource 객체를저장 / 사용하기위한디렉토리서버 File System (JNDI File System Service Provider) DBMS Derby 서버측 ( 변경필요 ) DataSource-FileSystem-Derby.properties ( 새로작성 ) DataSourceFileServerDerby.java ( 새로작성 ) 클라이언트측 ( 변경불필요 ) MustsicStore-FileSystem-Derby.properties MusicStore.properties DataSourceClient.java ( 무변경 ) StoreDS.java ( 무변경 ) TestStoreDS.java ( 무변경 ) 한밭대학교정보통신 - 컴퓨터공학부김영찬교수 19/38 DataSourceFileServerDerby datasource/datasourcefileserverderby.java pages package datasource; import java.sql.*; import javax.sql.*; import javax.naming.*; import java.util.*; import org.apache.derby.jdbc.embeddeddatasource; public class DataSourceFileSystemDerby { static ResourceBundle bundle = ResourceBundle.getBundle( datasource.datasource-filesystem-derby ); static String s; public static void main(string[] args) { try { //create and store parameters which are used to create the context Hashtable<String,String> env = new Hashtable<String,String>(); env.put(context.initial_context_factory, bundle.getstring("datasource.factory")); env.put(context.provider_url, bundle.getstring("datasource.url")); //create the context Context context = new InitialContext(env); EmbeddedDataSource csdatasource = new EmbeddedDataSource(); s = bundle.getstring("datasource.databasename"); csdatasource.setdatabasename(s); String bindname = bundle.getstring("datasource.bindname"); context.rebind(bindname, csdatasource); System.out.println("DataSource completed"); catch (Exception e) { e.printstacktrace(); 한밭대학교정보통신 - 컴퓨터공학부김영찬교수 20/38

11 실습해보기 FileSystem-Derby 실습하기 datasource/datasourcefilesystemderby.java 컴파일하고실행하기 소스파일을 d:\begjavadb\ch18\datasource에저장 d:> cd d:\begjavadb\ch18 d:> javac datasource/datasourcefileserverderby.java d:> java datasource.datasourcefileserverderby ( d:\java\jndi\derby\.bindings 이변경됨 ) connections/teststoreds.java 실행하기 ( 전혀수정없이 ) d:> cd d:\begjavadb\ch18 d:> java connections.teststoreds 한밭대학교정보통신 - 컴퓨터공학부김영찬교수 21/38 File System 대신 LDAP 서버를사용하도록변경하기 DataSource 객체를저장 / 사용하기위한디렉토리서버 Fedora Directory Server (JNDI LDAP Service Provider) DBMS Oracle 서버측 ( 변경필요 ) DataSource-LDAP-Oracle.properties ( 새로작성 ) DataSourceLDAPServerOracle.java ( 새로작성 ) 클라이언트측 ( 변경불필요 ) MusicStore-LDAP-Oracle.properties MusicStore.properties DataSourceClient.java ( 무변경 ) StoreDS.java ( 무변경 ) TestStoreDS.java ( 무변경 ) 한밭대학교정보통신 - 컴퓨터공학부김영찬교수 22/38

12 변경 1 : DataSource-LDAP-Oracle.properties DataSource-LDAP-Oracle.properties 887 page # DataSource-LDAP-Oracle.properties # Oracle # clsname = "oracle.jdbc.driver.oracledriver" # url = "jdbc:oracle:thin:@xtreme.hanbat.ac.kr:1521:xtrm" datasource.factory=com.sun.jndi.ldap.ldapctxfactory datasource.url=ldap://embedded.hanbat.ac.kr/dc=hanbat,dc=ac,dc=kr datasource.bindname=cn=oracle_musicstore,ou=datasources datasource.username=student 자신의오라클계정이름 datasource.password=xxxxxx 자신의오라클패스워드 datasource.server=xtreme.hanbat.ac.kr datasource.port=1521 datasource.drivertype=thin datasource.netprotocol=tcp datasource.databasename=xtrm 준비작업 embedded.hanbat.ac.kr 에 FDS 서버실행 한밭대학교정보통신 - 컴퓨터공학부김영찬교수 23/38 변경 2 : DataSourceLDAPServerOracle 클래스구현하기 1 DataSourceLDAPServerOracle.java (1/3) package datasource; import java.util.*; import java.sql.*; import javax.sql.*; import javax.naming.*; import javax.naming.directory.*; import oracle.jdbc.pool.oracledatasource; public class DataSourceLDAPServerOracle { final static String rootdn = "cn=directory Manager"; final static String rootpass = "xxxx"; // DataSource Parameter final static ResourceBundle bundle = ResourceBundle.getBundle( datasource.datasource"); public static void main( String[] args ) { // set up environment to access the server Hashtable<String,String> env = new Hashtable<String,String>(); env.put( Context.INITIAL_CONTEXT_FACTORY, bundle.getstring("datasource.factory")); env.put( Context.PROVIDER_URL, bundle.getstring("datasource.url")); env.put( Context.SECURITY_PRINCIPAL, rootdn ); env.put( Context.SECURITY_CREDENTIALS, rootpass ); 한밭대학교정보통신 - 컴퓨터공학부김영찬교수 24/38

13 변경 2 : DataSourceLDAPServerOracle 클래스구현하기 2 DataSourceLDAPServerOracle.java (2/3) try { // obtain initial directory context using the environment DirContext ctx = new InitialDirContext( env ); // create a DataSource object to add to the directory OracleDataSource datasource = new OracleDataSource(); // set the connection parameters String s; s = bundle.getstring("datasource.username"); datasource.setuser(s); s = bundle.getstring("datasource.password"); datasource.setpassword(s); s = bundle.getstring("datasource.drivertype"); datasource.setdrivertype(s); s = bundle.getstring("datasource.netprotocol"); datasource.setnetworkprotocol(s); s = bundle.getstring("datasource.server"); datasource.setservername(s); s = bundle.getstring("datasource.databasename"); datasource.setdatabasename(s); datasource.setportnumber(getport()); 한밭대학교정보통신 - 컴퓨터공학부김영찬교수 25/38 변경 2 : DataSourceLDAPServerOracle 클래스구현하기 3 DataSourceLDAPServerOracle.java (3/3) // get the name String bindname = bundle.getstring("datasource.bindname"); // bind the DataSource with the name ctx.rebind( bindname, datasource ); System.out.println("DataSource completed"); catch ( NameAlreadyBoundException nabe ) { System.err.println( "value has already been bound!" ); catch ( Exception e ) { System.err.println( e ); static int getport() throws NumberFormatException { String s = bundle.getstring("datasource.port"); return Integer.parseInt(s); 한밭대학교정보통신 - 컴퓨터공학부김영찬교수 26/38

14 변경 3 : MusicStore-LDAP-oracle.properties MusicStore-LDAP-Oracle.properties # MusicStore-LDAP-Oracle.properties datasource.factory=com.sun.jndi.ldap.ldapctxfactory datasource.url=ldap://embedded.hanbat.ac.kr/dc=hanbat,dc=ac,dc=kr datasource.bindname=cn=oracle_musicstore,ou=datasources 준비작업 d:\begjavadb\ch18> copy MusicStore-LDAP-oracle.properties MusicStore.properties 한밭대학교정보통신 - 컴퓨터공학부김영찬교수 27/38 실습해보기 TestStoreDS connections/teststoreds.java 실행하기 d:> cd d:\begjavadb\ch18 d:> java connections.teststoreds 한밭대학교정보통신 - 컴퓨터공학부김영찬교수 28/38

15 Connection Pooling : Profiler.java profiler/profiler.java 891 page package profiler; import static java.lang.system.out; public class Profiler { private long m_starttime; private long m_stoptime; private String m_routinename; public void Start(String routinename) { m_starttime = System.currentTimeMillis(); m_routinename = routinename; public void Stop() { m_stoptime = System.currentTimeMillis(); out.printf( Routine [%s] took %d msecs to execute. n, m_routinename, (m_stoptime - m_starttime) ); 컴파일하기 C:\BegJavaDB\Ch18> javac profiler\profiler.java 한밭대학교정보통신 - 컴퓨터공학부김영찬교수 29/38 Connection Pooling : ProfilerTest.java profiler/profilertest.java 893 page package profiler; import static java.lang.system.out; public class ProfilerTest { public static void main(string args[]) { Profiler p = new Profiler(); // Start the profiler p.start("a routine"); for (long ncounter = 0; ncounter < 100; ncounter++) { out.printf( %2d n, ncounter); p.stop(); 컴파일및실행하기 d:\begjavadb\ch18> javac profiler\profilertest.java d:\begjavadb\ch18> java profiler.profilertest 한밭대학교정보통신 - 컴퓨터공학부김영찬교수 30/38

16 Connection Pooling : DataSourceConnectionPool.java pooling/datasourceconnectionpool.java (1/3) pages package pooling; import java.sql.*; import java.util.*; import datasource.*; public class DataSourceConnectionPool { private Vector connections; private String url, username, password; private boolean inuse[]; final private int poolsize = 10; private DataSourceClient client; public DataSourceConnectionPool() throws SQLException { connections = new Vector(poolsize); inuse = new boolean[poolsize]; try { SetupConnectionsPool(); catch (Exception e) { e.printstacktrace(); 한밭대학교정보통신 - 컴퓨터공학부김영찬교수 31/38 Connection Pooling : DataSourceConnectionPool.java 2 pooling/datasourceconnectionpool.java (2/3) pages private void SetupConnectionsPool() throws SQLException { for (int i = 0; i < poolsize; i++) { Connection conn = new DataSourceClient().getConnection(); connections.addelement(conn); inuse[i] = false; public void freeconnection(int connectionidx) { inuse[connectionidx] = false; public Connection getconnection() { Connection c = null; for (int idx = 0; idx < connections.size(); idx++) { if (inuse[idx] == false) { c = (Connection) connections.elementat(idx); inuse[idx] = true; return c; 한밭대학교정보통신 - 컴퓨터공학부김영찬교수 32/38

17 Connection Pooling : DataSourceConnectionPool.java 3 pooling/datasourceconnectionpool.java (3/3) pages public void dumpconnectionstatus() { System.out.println(" nconnection Pool Status"); System.out.println(" npool Size is " + connections.size()); for (int i = 0; i < connections.size(); i++) { System.out.println("Pool Index [" + i + "] In Use status = " + inuse[i]); 컴파일하기 d:\begjavadb\ch18> set CLASSPATH=.;d:\java\lib\fscontext.jar;d:\java\lib\providerutil.jar d:\begjavadb\ch18> javac pooling\datasourceconnectionpool.java 한밭대학교정보통신 - 컴퓨터공학부김영찬교수 33/38 Connection Pooling : NonPoolTest.java pooling/nonpooltest.java package pooling; import java.sql.*; import profiler.profiler; import datasource.datasourceclient; public class NonPoolTest { private static ConnectionPool pool; public static void main(string args[]) { Profiler p = new Profiler(); try { Connection c[] = new Connection[10]; p.start("main() in NON PoolTest"); for (int i = 0; i < 10; i++) { c[i] = new DataSourceClient().getConnection(); p.stop(); catch (Exception e) { e.printstacktrace(); 컴파일하기 d:\begjavadb\ch18> javac pooling\nonpooltest.java d:\begjavadb\ch18> java pooling.nonpooltest 한밭대학교정보통신 - 컴퓨터공학부김영찬교수 34/38

18 Connection Pooling : DataSourcePoolTest.java pooling/datasourcepooltest.java pages package pooling; import java.sql.*; import profiler.profiler; public class DataSourcePoolTest { private static DataSourceConnectionPool pool; private static String url = "jdbc:cloudscape:c:/begjavadb/wrox4370.db"; private static String username = ""; private static String password = ""; public static void main(string args[]) { Profiler p = new Profiler(); try { System.out.println("Establish a connection [" + url + "]"); p.start("creating a pool of 10 connections"); pool = new DataSourceConnectionPool(); Connection c[] = new Connection[10]; p.stop(); p.start("main() in PoolTest"); for (int i = 0; i < 10; i++) { c[i] = pool.getconnection(); p.stop(); catch (Exception e) { e.printstacktrace(); 한밭대학교정보통신 - 컴퓨터공학부김영찬교수 35/38 Connection Pooling : DataSourcePoolTest.java 실행하기 실행하기 d:\begjavadb\ch18> javac pooling\datasourcepooltest.java d:\begjavadb\ch18> java pooling.datasourcepooltest 한밭대학교정보통신 - 컴퓨터공학부김영찬교수 36/38

19 Connection Pooling : 기업형환경에서사용하기 Enterprise JavaBean 에서벤더가제공하는커넥션풀링사용예 import java.sql.*; import javax.sql.*; import javax.naming.*; import java.util.*; public MyEJB ejbcreate() { ConnectionPoolDataSource ds; PooledConnection pc; try { // create and store parameters which are used to create the context context = new InitialContext(env); ds = (ConnectionPoolDataSource) context.lookup(bindname); pc = ds.getpooledconnection(); conn = pc.getconnection(); // // 데이타베이스조작하는코드 // conn.close(); catch (Exception e) { e.printstacktrace(); 한밭대학교정보통신 - 컴퓨터공학부김영찬교수 37/38 Connection Pooling : Oracle 의 ConnectionPool 사용 datasource/connectionpooldatasourceldapserver.java datasource/connectionpooldatasourceclient.java 한밭대학교정보통신 - 컴퓨터공학부김영찬교수 38/38

rmi_박준용_final.PDF

rmi_박준용_final.PDF (RMI) - JSTORM http://wwwjstormpekr (RMI)- Document title: Document file name: Revision number: Issued by: Document Information (RMI)- rmi finaldoc Issue Date: Status:

More information

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET 135-080 679-4 13 02-3430-1200 1 2 11 2 12 2 2 8 21 Connection 8 22 UniSQLConnection 8 23 8 24 / / 9 3 UniSQL 11 31 OID 11 311 11 312 14 313 16 314 17 32 SET 19 321 20 322 23 323 24 33 GLO 26 331 GLO 26

More information

쉽게 풀어쓴 C 프로그래밊

쉽게 풀어쓴 C 프로그래밊 Power Java 제 27 장데이터베이스 프로그래밍 이번장에서학습할내용 자바와데이터베이스 데이터베이스의기초 SQL JDBC 를이용한프로그래밍 변경가능한결과집합 자바를통하여데이터베이스를사용하는방법을학습합니다. 자바와데이터베이스 JDBC(Java Database Connectivity) 는자바 API 의하나로서데이터베이스에연결하여서데이터베이스안의데이터에대하여검색하고데이터를변경할수있게한다.

More information

Spring Boot/JDBC JdbcTemplate/CRUD 예제

Spring Boot/JDBC JdbcTemplate/CRUD 예제 Spring Boot/JDBC JdbcTemplate/CRUD 예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) Spring Boot, Gradle 과오픈소스인 MariaDB 를이용해서 EMP 테이블을만들고 JdbcTemplate, SimpleJdbcTemplate 을이용하여 CRUD 기능을구현해보자. 마리아 DB 설치는다음 URL 에서확인하자.

More information

J2EE Concepts

J2EE Concepts ! Introduction to J2EE (1) - J2EE Servlet/JSP/JDBC iseminar.. 1544-3355 ( ) iseminar Chat. 1 Who Are We? Business Solutions Consultant Oracle Application Server 10g Business Solutions Consultant Oracle10g

More information

FileMaker ODBC and JDBC Guide

FileMaker ODBC and JDBC Guide FileMaker 13 5 5 5 6 6 6 7 7 8 8 8 8 9 9 10 10 11 11 12 12 12 12 12 12 13 13 14 14 16 16 18 4 19 19 20 20 21 21 21 23 23 23 23 25 26 26 26 26 27 28 28 28 28 29 31 31 32 33 33 33 33 34 34 35 35 35 36 1

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 2... ( ). ( ). @ vs. logic data method variable behavior attribute method field Flow (Type), ( ) member @ () : C program Method A ( ) Method B ( ) Method C () program : Java, C++, C# data @ Program

More information

Interstage5 SOAP서비스 설정 가이드

Interstage5 SOAP서비스 설정 가이드 Interstage 5 Application Server ( Solaris ) SOAP Service Internet Sample Test SOAP Server Application SOAP Client Application CORBA/SOAP Server Gateway CORBA/SOAP Gateway Client INTERSTAGE SOAP Service

More information

교육2 ? 그림

교육2 ? 그림 Interstage 5 Apworks EJB Application Internet Revision History Edition Date Author Reviewed by Remarks 1 2002/10/11 2 2003/05/19 3 2003/06/18 EJB 4 2003/09/25 Apworks5.1 [ Stateless Session Bean ] ApworksJava,

More information

JMF2_심빈구.PDF

JMF2_심빈구.PDF JMF JSTORM http://wwwjstormpekr Issued by: < > Document Information Document title: Document file name: Revision number: Issued by: JMF2_ doc Issue Date: Status: < > raica@nownurinet

More information

자바-11장N'1-502

자바-11장N'1-502 C h a p t e r 11 java.net.,,., (TCP/IP) (UDP/IP).,. 1 ISO OSI 7 1977 (ISO, International Standards Organization) (OSI, Open Systems Interconnection). 6 1983 X.200. OSI 7 [ 11-1] 7. 1 (Physical Layer),

More information

신림프로그래머_클린코드.key

신림프로그래머_클린코드.key CLEAN CODE 6 11st Front Dev. Team 6 1. 2. 3. checked exception 4. 5. 6. 11 : 2 4 : java (50%), javascript (35%), SQL/PL-SQL (15%) : Spring, ibatis, Oracle, jquery ? , (, ) ( ) 클린코드를 무시한다면 . 6 1. ,,,!

More information

02 C h a p t e r Java

02 C h a p t e r Java 02 C h a p t e r Java Bioinformatics in J a va,, 2 1,,,, C++, Python, (Java),,, (http://wwwbiojavaorg),, 13, 3D GUI,,, (Java programming language) (Sun Microsystems) 1995 1990 (green project) TV 22 CHAPTER

More information

FileMaker 15 ODBC 및 JDBC 설명서

FileMaker 15 ODBC 및 JDBC 설명서 FileMaker 15 ODBC JDBC 2004-2016 FileMaker, Inc.. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker FileMaker Go FileMaker, Inc.. FileMaker WebDirect FileMaker, Inc... FileMaker.

More information

Microsoft PowerPoint - 04-UDP Programming.ppt

Microsoft PowerPoint - 04-UDP Programming.ppt Chapter 4. UDP Dongwon Jeong djeong@kunsan.ac.kr http://ist.kunsan.ac.kr/ Dept. of Informatics & Statistics 목차 UDP 1 1 UDP 개념 자바 UDP 프로그램작성 클라이언트와서버모두 DatagramSocket 클래스로생성 상호간통신은 DatagramPacket 클래스를이용하여

More information

No Slide Title

No Slide Title J2EE J2EE(Java 2 Enterprise Edition) (Web Services) :,, SOAP: Simple Object Access Protocol WSDL: Web Service Description Language UDDI: Universal Discovery, Description & Integration 4. (XML Protocol

More information

歯JavaExceptionHandling.PDF

歯JavaExceptionHandling.PDF (2001 3 ) from Yongwoo s Park Java Exception Handling Programming from Yongwoo s Park 1 Java Exception Handling Programming from Yongwoo s Park 2 1 4 11 4 4 try/catch 5 try/catch/finally 9 11 12 13 13

More information

FileMaker ODBC 및 JDBC 가이드

FileMaker ODBC 및 JDBC 가이드 FileMaker ODBC JDBC 2004-2019 FileMaker, Inc.. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker, FileMaker Cloud, FileMaker Go FileMaker, Inc.. FileMaker WebDirect FileMaker,

More information

JMF3_심빈구.PDF

JMF3_심빈구.PDF JMF JSTORM http://wwwjstormpekr Issued by: < > Revision: Document Information Document title: Document file name: Revision number: Issued by: JMF3_ doc Issue Date:

More information

Chap12

Chap12 12 12Java RMI 121 RMI 2 121 RMI 3 - RMI, CORBA 121 RMI RMI RMI (remote object) 4 - ( ) UnicastRemoteObject, 121 RMI 5 class A - class B - ( ) class A a() class Bb() 121 RMI 6 RMI / 121 RMI RMI 1 2 ( 7)

More information

12-file.key

12-file.key 11 (String).. java.lang.stringbuffer. s String s = "abcd"; s = s + "e"; a b c d e a b c d e ,., "910359,, " "910359" " " " " (token) (token),, (delimiter). java.util.stringtokenizer String s = "910359,,

More information

FileMaker ODBC and JDBC Guide

FileMaker ODBC and JDBC Guide FileMaker 14 5 5 5 5 6 6 6 7 7 7 8 8 8 9 9 10 10 11 11 12 12 12 12 12 13 13 14 15 16 17 18 18 19 19 20 20 20 21 21 21 22 22 22 22 23 24 24 24 24 25 27 27 28 29 29 29 29 30 30 31 31 31 32 1 1 1 1 1 1 1

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 3 if, if else, if else if, switch case for, while, do while break, continue : System.in, args, JOptionPane for (,, ) @ vs. logic data method variable Data Data Flow (Type), ( ) @ Member field

More information

10.ppt

10.ppt : SQL. SQL Plus. JDBC. SQL >> SQL create table : CREATE TABLE ( ( ), ( ),.. ) SQL >> SQL create table : id username dept birth email id username dept birth email CREATE TABLE member ( id NUMBER NOT NULL

More information

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드] - Socket Programming in Java - 목차 소켓소개 자바에서의 TCP 프로그램작성방법 주요클래스와메소드 HTTP 프로토콜을이용한예제 에코프로그램 Q/A 에코프로그램 - EchoServer 에코프로그램 - EchoClient TCP Programming 1 소켓소개 IP, Port, and Socket 포트 (Port): 전송계층에서통신을수행하는응용프로그램을찾기위한주소

More information

Microsoft PowerPoint - RMI.ppt

Microsoft PowerPoint - RMI.ppt ( 분산통신실습 ) RMI RMI 익히기 1. 분산환경에서동작하는 message-passing을이용한 boundedbuffer 해법프로그램을실행해보세요. 소스코드 : ftp://211.119.245.153 -> os -> OSJavaSources -> ch15 -> rmi http://marvel el.incheon.ac.kr의 Information Unix

More information

Network Programming

Network Programming Part 5 확장된 Network Programming 기술 1. Remote Procedure Call 2. Remote Method Invocation 3. Object Request Broker 2. Java RMI

More information

Microsoft PowerPoint - GUI _DB연동.ppt [호환 모드]

Microsoft PowerPoint - GUI _DB연동.ppt [호환 모드] GUI 설계 6 주차 DB 연동김문정 tops@yd.ac.kr 강의순서강의전환경 JDK 설치및환경설정톰캣설치및환경설정이클립스 (JEE) 설치및환경설정 MySQL( 드라이버 ) 설치및커넥터드라이브연결 DB 생성 - 계정생성이클립스에서 DB에연결서버생성 - 프로젝트생성 DB연결테이블생성및등록 2 MySQL 설치확인 mysql - u root -p MySQL 에데이터베이스추가

More information

Analyze Connection Failover Options.ppt

Analyze Connection Failover Options.ppt Analyze Connection Failover options 1 TAF 를구현하기위한 Application 고려사항 1. Application FailOver 방법결정 2. Application의사용형태, 종류, 중요도에따라 TAF적용여부결정 3. Language별, 사용형태별 TAF사용여부및방법결정 4. Transaction에따른장애시점별 TAF 사용여부및방법결정

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 실습문제 Chapter 05 데이터베이스시스템... 오라클로배우는데이터베이스개론과실습 1. 실습문제 1 (5 장심화문제 : 각 3 점 ) 6. [ 마당서점데이터베이스 ] 다음프로그램을 PL/SQL 저장프로시져로작성하고실행해 보시오. (1) ~ (2) 7. [ 마당서점데이터베이스 ] 다음프로그램을 PL/SQL 저장프로시져로작성하고실행해 보시오. (1) ~ (5)

More information

Microsoft PowerPoint - 03-TCP Programming.ppt

Microsoft PowerPoint - 03-TCP Programming.ppt Chapter 3. - Socket in Java - 목차 소켓소개 자바에서의 프로그램작성방법 주요클래스와메소드 HTTP 프로토콜을이용한예제 에코프로그램 에코프로그램 - EchoServer 에코프로그램 - EchoClient Q/A 1 1 소켓소개 IP,, and Socket 포트 (): 전송계층에서통신을수행하는응용프로그램을찾기위한주소 소켓 (Socket):

More information

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 2012.11.23 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Document Distribution Copy Number Name(Role, Title) Date

More information

ilist.add(new Integer(1))과 같이 사용하지 않고 ilist.add(1)과 같이 사용한 것은 자바 5.0에 추가된 기본 자료형과 해당 객체 자료 형과의 오토박싱/언박싱 기능을 사용한 것으로 오토박싱이란 자바 컴파일러가 객체를 요구하는 곳에 기본 자료형

ilist.add(new Integer(1))과 같이 사용하지 않고 ilist.add(1)과 같이 사용한 것은 자바 5.0에 추가된 기본 자료형과 해당 객체 자료 형과의 오토박싱/언박싱 기능을 사용한 것으로 오토박싱이란 자바 컴파일러가 객체를 요구하는 곳에 기본 자료형 바에 제네릭스(generics)를 도입하기 위한 연구는 이미 8년 전인 1996년부터라고 한다. 실제로 자바에 제네릭스를 도입하 는 몇 가지 방안들이 논문으로 나오기 시작한 것이 1998년 초임을 감 안하면 무려 8년이 지난 후에야 자바 5.0에 전격 채택되었다는 것은 이것이 얼마나 어려운 일이었나 하는 것을 보여준다. 자바의 스펙을 결정하는 표준화 절차인

More information

개요오라클과티베로에서 JDBC 를통해접속한세션을구분할수있도록 JDBC 접속시 ConnectionProperties 를통해구분자를넣어줄수있다. 하나의 Node 에다수의 WAS 가있을경우 DB 에서 Session Kill 등의동작수행시원하는 Session 을선택할수있다.

개요오라클과티베로에서 JDBC 를통해접속한세션을구분할수있도록 JDBC 접속시 ConnectionProperties 를통해구분자를넣어줄수있다. 하나의 Node 에다수의 WAS 가있을경우 DB 에서 Session Kill 등의동작수행시원하는 Session 을선택할수있다. 설치및환경설정 JDBC 접속세션구분 / 확인 2013. 11. 01 개요오라클과티베로에서 JDBC 를통해접속한세션을구분할수있도록 JDBC 접속시 ConnectionProperties 를통해구분자를넣어줄수있다. 하나의 Node 에다수의 WAS 가있을경우 DB 에서 Session Kill 등의동작수행시원하는 Session 을선택할수있다. 사용하기 JEUS 에서설정방법

More information

비긴쿡-자바 00앞부속

비긴쿡-자바 00앞부속 IT COOKBOOK 14 Java P r e f a c e Stay HungryStay Foolish 3D 15 C 3 16 Stay HungryStay Foolish CEO 2005 L e c t u r e S c h e d u l e 1 14 PPT API C A b o u t T h i s B o o k IT CookBook for Beginner Chapter

More information

fundamentalOfCommandPattern_calmglow_pattern_jstorm_1.0_f…

fundamentalOfCommandPattern_calmglow_pattern_jstorm_1.0_f… Command JSTORM http://www.jstorm.pe.kr Command Issued by: < > Revision: Document Information Document title: Command Document file name: Revision number: Issued by: Issue

More information

PowerPoint Presentation

PowerPoint Presentation Package Class 3 Heeseung Jo 목차 section 1 패키지개요와패키지의사용 section 2 java.lang 패키지의개요 section 3 Object 클래스 section 4 포장 (Wrapper) 클래스 section 5 문자열의개요 section 6 String 클래스 section 7 StringBuffer 클래스 section

More information

(Microsoft PowerPoint - Chapter17 RMI.ppt [\310\243\310\257 \270\360\265\345])

(Microsoft PowerPoint - Chapter17 RMI.ppt [\310\243\310\257 \270\360\265\345]) Chapter 17. RMI Mingyu Lim Collaborative Computing Systems Lab, School of Internet & Multimedia Engineering Konkuk University, Seoul, Korea 학습목표 RMI란 RMI 구조 RMI는어떻게동작하는가 로컬객체를원격객체로변경하기 RMI를이용한계산기애플리케이션

More information

Spring Data JPA Many To Many 양방향 관계 예제

Spring Data JPA Many To Many 양방향 관계 예제 Spring Data JPA Many To Many 양방향관계예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) 엔티티매핑 (Entity Mapping) M : N 연관관계 사원 (Sawon), 취미 (Hobby) 는다 : 다관계이다. 사원은여러취미를가질수있고, 하나의취미역시여러사원에할당될수있기때문이다. 보통관계형 DB 에서는다 : 다관계는 1

More information

1

1 1 1....6 1.1...6 2. Java Architecture...7 2.1 2SDK(Software Development Kit)...8 2.2 JRE(Java Runtime Environment)...9 2.3 (Java Virtual Machine, JVM)...10 2.4 JVM...11 2.5 (runtime)jvm...12 2.5.1 2.5.2

More information

교육자료

교육자료 THE SYS4U DODUMENT Java Reflection & Introspection 2012.08.21 김진아사원 2012 SYS4U I&C All rights reserved. 목차 I. 개념 1. Reflection 이란? 2. Introspection 이란? 3. Reflection 과 Introspection 의차이점 II. 실제사용예 1. Instance의생성

More information

09-interface.key

09-interface.key 9 Database insert(record r): boolean find(key k): Record 1 Record getkey(): Key * Record Key Database.? Key equals(key y): boolean Database insert(record r): boolean find(key k): Record * Database OK 1

More information

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4 ALTIBASE HDB 6.5.1.5.10 Patch Notes 목차 BUG-46183 DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG-46249 [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4 BUG-46266 [sm]

More information

05-class.key

05-class.key 5 : 2 (method) (public) (private) (interface) 5.1 (Method), (public method) (private method) (constructor), 3 4 5.2 (client). (receiver)., System.out.println("Hello"); (client object) (receiver object)

More information

제11장 프로세스와 쓰레드

제11장 프로세스와 쓰레드 제9장자바쓰레드 9.1 Thread 기초 (1/5) 프로그램 명령어들의연속 (a sequence of instruction) 프로세스 / Thread 실행중인프로그램 (program in execution) 프로세스생성과실행을위한함수들 자바 Thread 2 9.1 Thread 기초 (2/5) 프로세스단위작업의문제점 프로세스생성시오버헤드 컨텍스트스위치오버헤드

More information

MasoJava4_Dongbin.PDF

MasoJava4_Dongbin.PDF JSTORM http://wwwjstormpekr Issued by: < > Revision: Document Information Document title: Document file name: MasoJava4_Dongbindoc Revision number: Issued by: < > SI, dbin@handysoftcokr

More information

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 객체지향프로그래밍 IT CookBook, 자바로배우는쉬운자료구조 q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 q 객체지향프로그래밍의이해 v 프로그래밍기법의발달 A 군의사업발전 1 단계 구조적프로그래밍방식 3 q 객체지향프로그래밍의이해 A 군의사업발전 2 단계 객체지향프로그래밍방식 4 q 객체지향프로그래밍의이해 v 객체란무엇인가

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 배효철 th1g@nate.com 1 목차 표준입출력 파일입출력 2 표준입출력 표준입력은키보드로입력하는것, 주로 Scanner 클래스를사용. 표준출력은화면에출력하는메소드를사용하는데대표적으로 System.out.printf( ) 를사용 3 표준입출력 표준출력 : System.out.printlf() 4 표준입출력 Example 01 public static void

More information

<4D F736F F F696E74202D20C1A63235C0E520B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D628B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A63235C0E520B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D628B0ADC0C729205BC8A3C8AF20B8F0B5E55D> Power Java 제 25 장네트워크프로그래밍 이번장에서학습할내용 네트워크프로그래밍의개요 URL 클래스 TCP를이용한통신 TCP를이용한서버제작 TCP를이용한클라이언트제작 UDP 를이용한통신 자바를이용하여서 TCP/IP 통신을이용하는응응프로그램을작성하여봅시다. 서버와클라이언트 서버 (Server): 사용자들에게서비스를제공하는컴퓨터 클라이언트 (Client):

More information

단계

단계 TIBERO-WAS 연동 Guide 본문서에서는 Tibero RDBMS 에서제공하는 JDBC 통한 JEUS, WEBLOGIC 등다양한 WAS (Web Application Server) 제품과의연동방법을알아본다. Contents 1. Connection Pool 방식... 2 2. JEUS 연동... 3 2.1. JEUSMain.xml 설정 (Thin 방식

More information

@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a

@OneToOne(cascade = = addr_id) private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a 1 대 1 단방향, 주테이블에외래키실습 http://ojcedu.com, http://ojc.asia STS -> Spring Stater Project name : onetoone-1 SQL : JPA, MySQL 선택 http://ojc.asia/bbs/board.php?bo_table=lecspring&wr_id=524 ( 마리아 DB 설치는위 URL

More information

07 자바의 다양한 클래스.key

07 자바의 다양한 클래스.key [ 07 ] . java.lang Object, Math, String, StringBuffer Byte, Short, Integer, Long, Float, Double, Boolean, Character. java.util Random, StringTokenizer Calendar, GregorianCalendar, Date. Collection, List,

More information

.

. JEUS 6 & WebtoB 4.1 관리자 2015.09 Ⅰ Ⅱ Ⅲ JEUS 설정 WebtoB 연동설정 Tibero 연동설정 Ⅰ JEUS 설정 컨테이너생성 Application 디플로이 컨테이너생성 관리자화면접속 http://ip-address:9744/webadmin 접속 ID : administrator PW : 설치단계에서설정한관리자암호 3/36 컨테이너생성

More information

Chap7.PDF

Chap7.PDF Chapter 7 The SUN Intranet Data Warehouse: Architecture and Tools All rights reserved 1 Intranet Data Warehouse : Distributed Networking Computing Peer-to-peer Peer-to-peer:,. C/S Microsoft ActiveX DCOM(Distributed

More information

PowerPoint Presentation

PowerPoint Presentation public class SumTest { public static void main(string a1[]) { int a, b, sum; a = Integer.parseInt(a1[0]); b = Integer.parseInt(a1[1]); sum = a + b ; // 두수를더하는부분입니다 System.out.println(" 두수의합은 " + sum +

More information

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D> Power Java 제 8 장클래스와객체 I 이번장에서학습할내용 클래스와객체 객체의일생직접 메소드클래스를 필드작성해 UML 봅시다. QUIZ 1. 객체는 속성과 동작을가지고있다. 2. 자동차가객체라면클래스는 설계도이다. 먼저앞장에서학습한클래스와객체의개념을복습해봅시다. 클래스의구성 클래스 (class) 는객체의설계도라할수있다. 클래스는필드와메소드로이루어진다.

More information

파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter

파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter 파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter 클래스의사용법은다음과같다. PrintWriter writer = new PrintWriter("output.txt");

More information

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - Java7.pptx HPC & OT Lab. 1 HPC & OT Lab. 2 실습 7 주차 Jin-Ho, Jang M.S. Hanyang Univ. HPC&OT Lab. jinhoyo@nate.com HPC & OT Lab. 3 Component Structure 객체 (object) 생성개념을이해한다. 외부클래스에대한접근방법을이해한다. 접근제어자 (public & private)

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 오류처리 손시운 ssw5176@kangwon.ac.kr 오류메시지를분석한다. 오류메시지에서많은내용을알수있다. 2 디버깅 디버거를사용하면프로그램에서쉽게오류를감지하고진단할수있다. 디버거는중단점을설정하여서프로그램의실행을제어할수있으며문장 단위로실행하거나변수의값을살펴볼수있다. 3 이클립스에서디버깅 4 이클립스에서디버깅 5 이클립스의디버깅명령어 6 예외처리

More information

Application 에서 Parameter 값을받아 JDBC Interface 로보내게되면적절한 JDBC Driver 를통해 SQL 을 Database 로보내주게되고결과를받아서사용자에게보여주게된다. 2-2 JDBC Interface JDBC 의핵심 Interface

Application 에서 Parameter 값을받아 JDBC Interface 로보내게되면적절한 JDBC Driver 를통해 SQL 을 Database 로보내주게되고결과를받아서사용자에게보여주게된다. 2-2 JDBC Interface JDBC 의핵심 Interface All about JDBC Performance Tuning 엑셈컨설팅본부 /APM 팀임대호 1 개요 JDBC 란 Java Database Connectivity 의약어이며, 데이터베이스표준접근 API(Application Programing Interface) 를말한다. JDBC 를사용하면어떤관계형데이터베이스에서도, 각데이터베이스에맞는접근프로그램을따로생성할필요없이사용할수있다.

More information

Cluster management software

Cluster management software 자바네트워크프로그래밍 (OCJP 국제공인자격취득중심 ) 충북대학교 최민 기본예제 예외클래스를정의하고사용하는예제 class NewException extends Exception { public class ExceptionTest { static void methoda() throws NewException { System.out.println("NewException

More information

untitled

untitled - -, (insert) (delete) - - (insert) (delete) (top ) - - (insert) (rear) (delete) (front) A A B top A B C top push(a) push(b) push(c) A B top pop() top A B D push(d) top #define MAX_STACK_SIZE 100 int

More information

자바 프로그래밍

자바 프로그래밍 5 (kkman@mail.sangji.ac.kr) (Class), (template) (Object) public, final, abstract [modifier] class ClassName { // // (, ) Class Circle { int radius, color ; int x, y ; float getarea() { return 3.14159

More information

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770>

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770> i ii iii iv v vi 1 2 3 4 가상대학 시스템의 국내외 현황 조사 가상대학 플랫폼 개발 이상적인 가상대학시스템의 미래상 제안 5 웹-기반 가상대학 시스템 전통적인 교수 방법 시간/공간 제약을 극복한 학습동기 부여 교수의 일방적인 내용전달 교수와 학생간의 상호작용 동료 학생들 간의 상호작용 가상대학 운영 공지사항,강의록 자료실, 메모 질의응답,

More information

Chapter 1

Chapter 1 3 Oracle 설치 Objectives Download Oracle 11g Release 2 Install Oracle 11g Release 2 Download Oracle SQL Developer 4.0.3 Install Oracle SQL Developer 4.0.3 Create a database connection 2 Download Oracle 11g

More information

PWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS (

PWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS ( PWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS (http://ddns.hanwha-security.com) Step 1~5. Step, PC, DVR Step 1. Cable Step

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 필드만있는클래스 텔레비젼 2 예제 1. 필드만있는클래스 3 예제 2. 여러개의객체생성하기 4 5 예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean

More information

슬라이드 1

슬라이드 1 UNIT 16 예외처리 로봇 SW 교육원 3 기 최상훈 학습목표 2 예외처리구문 try-catch-finally 문을사용핛수있다. 프로그램오류 3 프로그램오류의종류 컴파일에러 (compile-time error) : 컴파일실행시발생 럮타임에러 (runtime error) : 프로그램실행시발생 에러 (error) 프로그램코드에의해서해결될수없는심각핚오류 ex)

More information

Connection pool 엑셈컨설팅본부 /APM 팀박종현 Connection pool 이란? 사용자의요청에따라 Connection을생성하다보면많은수의연결이발생했을때서버에과부하가걸리게된다. 이러한상황을방지하기위해미리일정수의 Connection을만들어 pool에담아뒀다

Connection pool 엑셈컨설팅본부 /APM 팀박종현 Connection pool 이란? 사용자의요청에따라 Connection을생성하다보면많은수의연결이발생했을때서버에과부하가걸리게된다. 이러한상황을방지하기위해미리일정수의 Connection을만들어 pool에담아뒀다 Connection pool 엑셈컨설팅본부 /APM 팀박종현 Connection pool 이란? 사용자의요청에따라 Connection을생성하다보면많은수의연결이발생했을때서버에과부하가걸리게된다. 이러한상황을방지하기위해미리일정수의 Connection을만들어 pool에담아뒀다가사용자의요청이발생하면연결을해주고연결종료시 pool에다시반환하여보관하는것이다. [ 그림 1]

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 인터페이스, 람다식, 패키지 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 홈네트워킹 public interface RemoteControl { public void turnon(); // 가전제품을켠다. public void turnoff(); // 가전제품을끈다. 인터페이스를구현 public class Television

More information

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 학습내용 1. Java Development Kit(JDK) 2. Java API 3. 자바프로그래밍개발도구 (Eclipse) 4. 자바프로그래밍기초 2 자바를사용하려면무엇이필요한가? 자바프로그래밍개발도구 JDK (Java Development Kit) 다운로드위치 : http://www.oracle.com/technetwork/java/javas

More information

* Factory class for query and DML clause creation * tiwe * */ public class JPAQueryFactory implements JPQLQueryFactory private f

* Factory class for query and DML clause creation * tiwe * */ public class JPAQueryFactory implements JPQLQueryFactory private f JPA 에서 QueryDSL 사용하기위해 JPAQuery 인스턴스생성방법 http://ojc.asia, http://ojcedu.com 1. JPAQuery 를직접생성하기 JPAQuery 인스턴스생성하기 QueryDSL의 JPAQuery API를사용하려면 JPAQuery 인스턴스를생성하면된다. // entitymanager는 JPA의 EntityManage

More information

JAVA PROGRAMMING 실습 09. 예외처리

JAVA PROGRAMMING 실습 09. 예외처리 2015 학년도 2 학기 예외? 프로그램실행중에발생하는예기치않은사건 예외가발생하는경우 정수를 0으로나누는경우 배열의크기보다큰인덱스로배열의원소를접근하는경우 파일의마지막부분에서데이터를읽으려고하는경우 예외처리 프로그램에문제를발생시키지않고프로그램을실행할수있게적절한조치를취하는것 자바는예외처리기를이용하여예외처리를할수있는기법제공 자바는예외를객체로취급!! 나뉨수를입력하시오

More information

13주-14주proc.PDF

13주-14주proc.PDF 12 : Pro*C/C++ 1 2 Embeded SQL 3 PRO *C 31 C/C++ PRO *C NOT! NOT AND && AND OR OR EQUAL == = SQL,,, Embeded SQL SQL 32 Pro*C C SQL Pro*C C, C Pro*C, C C 321, C char : char[n] : n int, short, long : float

More information

Secure Programming Lecture1 : Introduction

Secure Programming Lecture1 : Introduction Malware and Vulnerability Analysis Lecture3-2 Malware Analysis #3-2 Agenda 안드로이드악성코드분석 악성코드분석 안드로이드악성코드정적분석 APK 추출 #1 adb 명령 안드로이드에설치된패키지리스트추출 adb shell pm list packages v0nui-macbook-pro-2:lecture3 v0n$

More information

PowerPoint Presentation

PowerPoint Presentation Class - Property Jo, Heeseung 목차 section 1 클래스의일반구조 section 2 클래스선언 section 3 객체의생성 section 4 멤버변수 4-1 객체변수 4-2 클래스변수 4-3 종단 (final) 변수 4-4 멤버변수접근방법 section 5 멤버변수접근한정자 5-1 public 5-2 private 5-3 한정자없음

More information

Spring Boot

Spring Boot 스프링부트 (Spring Boot) 1. 스프링부트 (Spring Boot)... 2 1-1. Spring Boot 소개... 2 1-2. Spring Boot & Maven... 2 1-3. Spring Boot & Gradle... 3 1-4. Writing the code(spring Boot main)... 4 1-5. Writing the code(commandlinerunner)...

More information

NoSQL

NoSQL MongoDB Daum Communications NoSQL Using Java Java VM, GC Low Scalability Using C Write speed Auto Sharding High Scalability Using Erlang Read/Update MapReduce R/U MR Cassandra Good Very Good MongoDB Good

More information

목차 INDEX JSON? - JSON 개요 - JSONObject - JSONArray 서울시공공데이터 API 살펴보기 - 요청인자살펴보기 - Result Code - 출력값 HttpClient - HttpHelper 클래스작성 - JSONParser 클래스작성 공공

목차 INDEX JSON? - JSON 개요 - JSONObject - JSONArray 서울시공공데이터 API 살펴보기 - 요청인자살펴보기 - Result Code - 출력값 HttpClient - HttpHelper 클래스작성 - JSONParser 클래스작성 공공 메신저의새로운혁신 채팅로봇 챗봇 (Chatbot) 입문하기 소 이 메 속 : 시엠아이코리아 름 : 임채문 일 : soulgx@naver.com 1 목차 INDEX JSON? - JSON 개요 - JSONObject - JSONArray 서울시공공데이터 API 살펴보기 - 요청인자살펴보기 - Result Code - 출력값 HttpClient - HttpHelper

More information

歯Writing_Enterprise_Applications_2_JunoYoon.PDF

歯Writing_Enterprise_Applications_2_JunoYoon.PDF Writing Enterprise Applications with Java 2 Platform, Enterprise Edition - part2 JSTORM http//wwwjstormpekr Revision Document Information Document title Writing Enterprise Applications

More information

PowerPoint Presentation

PowerPoint Presentation Package Class 1 Heeseung Jo 목차 section 1 패키지개요와패키지의사용 section 2 java.lang 패키지의개요 section 3 Object 클래스 section 4 포장 (Wrapper) 클래스 section 5 문자열의개요 section 6 String 클래스 section 7 StringBuffer 클래스 section

More information

Portal_9iAS.ppt [읽기 전용]

Portal_9iAS.ppt [읽기 전용] Application Server iplatform Oracle9 A P P L I C A T I O N S E R V E R i Oracle9i Application Server e-business Portal Client Database Server e-business Portals B2C, B2B, B2E, WebsiteX B2Me GUI ID B2C

More information

USB USB DV25 DV25 REC SRN-475S REC SRN-475S LAN POWER LAN POWER Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl C

USB USB DV25 DV25 REC SRN-475S REC SRN-475S LAN POWER LAN POWER Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl C USB USB DV25 DV25 REC SRN-475S REC SRN-475S LAN POWER LAN POWER Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC Step 1~5. Step, PC, DVR Step 1. Cable Step

More information

<4D F736F F F696E74202D20C1A63234C0E520C0D4C3E2B7C228B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A63234C0E520C0D4C3E2B7C228B0ADC0C729205BC8A3C8AF20B8F0B5E55D> Power Java 제 24 장입출력 이번장에서학습할내용 스트림이란? 스트림의분류 바이트스트림 문자스트림 형식입출력 명령어행에서입출력 파일입출력 스트림을이용한입출력에대하여살펴봅시다. 스트림 (stream) 스트림 (stream) 은 순서가있는데이터의연속적인흐름 이다. 스트림은입출력을물의흐름처럼간주하는것이다. 스트림들은연결될수있다. 중간점검문제 1. 자바에서는입출력을무엇이라고추상화하는가?

More information

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Crash Unity SDK... Log & Crash Search. - Unity3D v4.0 ios

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 오류처리 손시운 ssw5176@kangwon.ac.kr 오류메시지를분석한다. 오류메시지에서많은내용을알수있다. 2 디버깅 디버거를사용하면프로그램에서쉽게오류를감지하고진단할수있다. 디버거는중단점을설정하여서프로그램의실행을제어할수있으며문장 단위로실행하거나변수의값을살펴볼수있다. 3 이클립스에서디버깅 4 이클립스에서디버깅 5 이클립스의디버깅명령어 6 예외처리

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 예외처리 배효철 th1g@nate.com 1 목차 예외와예외클래스 실행예외 예외처리코드 예외종류에따른처리코드 자동리소스닫기 예외처리떠넘기기 사용자정의예외와예외발생 예외와예외클래스 구문오류 예외와예외클래스 구문오류가없는데실행시오류가발생하는경우 예외와예외클래스 import java.util.scanner; public class ExceptionExample1

More information

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx 2018 학년도 1 학기 JAVA 프로그래밍 II 514760-1 2018 년봄학기 5/10/2018 박경신 Lab#1 (ImageTest) Lab#1 은영상파일 (Image) 을읽어서정보를출력 Java Tutorials Lesson: Working with Images https://docs.oracle.com/javase/tutorial/2d/images/index.html

More information

Interstage4 설치가이드

Interstage4 설치가이드 Interstage Application Server V501 Operation Guide Internet 1 1 1 FJApache FJApache (WWW (WWW server) server) - - file file - - 2 2 InfoProviderPro InfoProviderPro (WWW (WWW server) server) - - file file

More information

DocsPin_Korean.pages

DocsPin_Korean.pages Unity Localize Script Service, Page 1 Unity Localize Script Service Introduction Application Game. Unity. Google Drive Unity.. Application Game. -? ( ) -? -?.. 준비사항 Google Drive. Google Drive.,.. - Google

More information

웹연동 } 웹 (Web) 환경에서데이터베이스시스템을연동하는방법은다음과같다 } Server Client 구조의통신 (2-Tier) } Server Middleware Client 구조의통신 (3-Tier) 2

웹연동 } 웹 (Web) 환경에서데이터베이스시스템을연동하는방법은다음과같다 } Server Client 구조의통신 (2-Tier) } Server Middleware Client 구조의통신 (3-Tier) 2 DB 와 WEB 연동 (1) [2-Tier] Java Applet 이용 웹연동 } 웹 (Web) 환경에서데이터베이스시스템을연동하는방법은다음과같다 } Server Client 구조의통신 (2-Tier) } Server Middleware Client 구조의통신 (3-Tier) 2 JAVA Applet 을이용한 Client Server 연동기법 } Applet

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 실습 1 배효철 th1g@nate.com 1 목차 조건문 반복문 System.out 구구단 모양만들기 Up & Down 2 조건문 조건문의종류 If, switch If 문 조건식결과따라중괄호 { 블록을실행할지여부결정할때사용 조건식 true 또는 false값을산출할수있는연산식 boolean 변수 조건식이 true이면블록실행하고 false 이면블록실행하지않음 3

More information

JAVA PROGRAMMING 실습 08.다형성

JAVA PROGRAMMING 실습 08.다형성 2015 학년도 2 학기 1. 추상메소드 선언은되어있으나코드구현되어있지않은메소드 abstract 키워드사용 메소드타입, 이름, 매개변수리스트만선언 public abstract String getname(); public abstract void setname(string s); 2. 추상클래스 abstract 키워드로선언한클래스 종류 추상메소드를포함하는클래스

More information

01-OOPConcepts(2).PDF

01-OOPConcepts(2).PDF Object-Oriented Programming Concepts Tel: 02-824-5768 E-mail: hhcho@selabsoongsilackr? OOP (Object) (Encapsulation) (Message) (Class) (Inheritance) (Polymorphism) (Abstract Class) (Interface) 2 1 + = (Dependency)

More information

11 템플릿적용 - Java Program Performance Tuning (김명호기술이사)

11 템플릿적용 - Java Program Performance Tuning (김명호기술이사) Java Program Performance Tuning ( ) n (Primes0) static List primes(int n) { List primes = new ArrayList(n); outer: for (int candidate = 2; n > 0; candidate++) { Iterator iter = primes.iterator(); while

More information

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 )

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 ) 8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 ) - DDL(Data Definition Language) : show, create, drop

More information

5장.key

5장.key JAVA Programming 1 (inheritance) 2!,!! 4 3 4!!!! 5 public class Person {... public class Student extends Person { // Person Student... public class StudentWorker extends Student { // Student StudentWorker...!

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 4 (Object) (Class) (Instance) (Method) (Constructor) Memory 1 UML 1 @ & 1 (Real World) (Software World) @ &.. () () @ & 2 (Real World) (Software World) OOA/ Modeling Abstraction Instantiation

More information

untitled

untitled PowerBuilder 連 Microsoft SQL Server database PB10.0 PB9.0 若 Microsoft SQL Server 料 database Profile MSS 料 (Microsoft SQL Server database interface) 行了 PB10.0 了 Sybase 不 Microsoft 料 了 SQL Server 料 PB10.0

More information

³»Áö¼öÁ¤

³»Áö¼öÁ¤ Active Directory Active Directory Active Directory Active Directory m Active Directory m Active Directory m Active Directory m Active Directory m Active Directory m Active Directory m Active

More information