LDAPのコネクションが切れない理由と解決方法

このQ&Aのポイント
  • LDAPのコネクションが切れずに残る問題が発生しています。
  • JavaからLDAPにアクセスする際に、コネクションがclose()を使っても切れない問題が発生します。
  • ガベージコレクションで切れることがわかっていますが、他の方法での切断方法はありますか?
回答を見る
  • ベストアンサー

LDAPのコネクションが切れません

すいません、、何方か知っている方がいましたらご教授下さい。 アプリ環境:windows2003 Websphere v5.1 JDK 1.4.2 LDAP環境:AIX5 OpenLDAP の環境で、javaからLDAPにアクセスするロジックを作成中です。 アクセスは出来るのですが、コネクションがclose()を使っても切れません。 ガベージコレクションで切れる事はわかったのですが、何かほかの方法はないでしょうか?よろしくお願いいたします。 import javax.naming.Context; import javax.naming.NamingEnumeration; import javax.naming.NamingException; import javax.naming.directory.Attribute; import javax.naming.directory.Attributes; import javax.naming.directory.DirContext; import javax.naming.directory.InitialDirContext; import javax.naming.directory.SearchControls; import javax.naming.directory.SearchResult; import javax.naming.ldap.InitialLdapContext; import javax.naming.ldap.LdapContext; public class LdapDAO { private Hashtable env; private DirContext ctx = null; public LdapDAO() throws NamingException { String url = "ldap://172.22.1.85:389"; String auth = "simple"; String base = "ou=people,dc=com"; String user = "***"; String pass = "***"; env = new Hashtable(); env.put( Context.INITIAL_CONTEXT_FACTORY, cf); env.put( Context.PROVIDER_URL, url); env.put("java.naming.ldap.version", "3"); env.put( Context.SECURITY_AUTHENTICATION, auth); env.put( Context.SECURITY_PRINCIPAL, user); env.put( Context.SECURITY_CREDENTIALS, pass); env.put("com.sun.jndi.ldap.connect.timeout", "3000"); env.put("com.sun.jndi.ldap.connect.pool", "true"); env.put("com.sun.jndi.ldap.connect.pool.timeout", "2000"); } public String searchEmpAll(String employeeNumber, String flg) throws NamingException { String result = ""; ctx = new InitialDirContext(env); SearchControls cons = new SearchControls(); cons.setSearchScope(SearchControls.SUBTREE_SCOPE); cons.setReturningObjFlag(true); cons.setReturningAttributes(new String[]{****}); String filter = "****"; NamingEnumeration res = ctx.search(base, filter, cons); for(int i = 0; res.hasMore(); i++) { SearchResult entry = (SearchResult) res.next(); Attributes attrs = entry.getAttributes(); Attribute attribute = attrs.get(*****); if(attribute != null) { result = (String) attribute.get(); } } cons = null; res = null; ctx.close(); // System.gc(); return result; } }

  • Java
  • 回答数3
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
  • dijtoy
  • ベストアンサー率100% (1/1)
回答No.3

LDAP通信も噛み砕けばソケットです。 ソケットなどの解放は、Javaのガベージコレクタが実装されなければ ESTABLISHEDの状態のままです。 これはJavaの仕様です。 クローズ後、System.gc()を実装すればコネクションは消えます。

参考URL:
http://support.microsoft.com/kb/231183/ja

その他の回答 (2)

回答No.2

cons = null; res.close(); ← この行を追加 res = null; ctx.close(); これでコネクションが切れるはずです。 参考リンク) http://www-1.ibm.com/support/entdocview.wss?rs=180&context=SSEQTP&q1=JNDI-LDAP&uid=swg21191219&loc=en_US&cs=utf-8&lang=en&NotUpdateReferer=

  • yama06
  • ベストアンサー率61% (101/164)
回答No.1

res.close() の後にctx.close() ではいかがでしょうか?

k_tanpin
質問者

補足

yama06様ご回答ありがとうございます。 res.close()してもダメでした。。

関連するQ&A

  • LDAPにアクセスしてNamingEnumerationが遅延する

    お世話になります。 初めてLDAPにアクセスしたのですが、特定の検索条件の際にNamingEnumerationをhasMoreする所が遅延します。 *遅い時は2秒ほど掛かります。 同じ現象になって修正した方がいましたら、ご教授お願い致します。 ■ソース(見づらくてすいません) //LDAP接続設定 Hashtable env = new Hashtable(); DirContext ctx = new InitialDirContext(env); //取得属性 String str = ''; SearchControls cons = new SearchControls(); cons.setSearchScope(SearchControls.SUBTREE_SCOPE); cons.setReturningObjFlag(true); cons.setReturningAttributes(str); //検索条件 String filter = ""; NamingEnumeration res = ctx.search(base, filter, cons); while (res.hasMore()) { SearchResult entry = (SearchResult) res.next(); Attributes attrs = entry.getAttributes(); for (int i = 0; i < str.length; i++) { Attribute attr = attrs.get(str[i]); System.out.print((String) attr.get()); } System.out.println(); } よろしくお願い致します。

  • JBoss(EJB)へのアクセスがエラーになります。

    今回初めて、JBossを利用してステートレスJavaBeanをクライアントからアクセスしようとしています。クライアントでJBossサーバのアドレスを"localhost"または"127.0.0.1"とするとアクセスできますが、実際のIPアドレスを指定すると以下のエラーが出ます。 Could not obtain connection to any of these urls: 10.200.33.181:1099 and discovery failed with error: javax.naming.CommunicationException: Receive timed out [Root exception is java.net.SocketTimeoutException: Receive timed out] もし、原因などが判る方がいらっしゃれば、アドバイスをお願いします。 【環境】 JBoss jboss-4.2.0.GA Java Sun JDK1.6.0 サーバOS Windows XP/Redhat Enterprise Linux4(両方とも同じ現象) 【インターフェースプログラム】 package sample; public interface Bank { String getName(); } 【Bean本体プログラム】 package sample; import javax.ejb.Local; import javax.ejb.Remote; import javax.ejb.Stateless; @Stateless @Remote @Local public class BankBean implements Bank { public String getName() { return "Hello World"; } } 【クライアントプログラム】 package sample; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import java.util.Properties; public class Client { public static void main(String[] args) { Properties props = new Properties(); props.put("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory"); props.put("java.naming.factory.url.pkgs", "org.jboss.naming:org.jnp.interfaces"); props.put("java.naming.provider.url", "10.200.33.181:1099"); // エラー //props.put("java.naming.provider.url", "127.0.0.1:1099"); // OK // props.put ("java.naming.provider.url", "158.214.125.162:1099"); // エラー //props.put ("java.naming.provider.url", "MY-SERVER"); // エラー // props.put ("java.naming.provider.url", "localhost:1099"); // OK try { Context ctx = new InitialContext(props); Bank ejb = (Bank) ctx.lookup("BankBean/remote"); // エラー発生場所 System.out.println(ejb.getName()); } catch (NamingException e) { System.err.println(e.getMessage()); e.printStackTrace(); } } }

  • JNDIについて

    緊急で困っています。宜しくお願いします。 JNDIを使ってDB接続しようとしているのですがエラーが出て接続できません。 ■発生箇所---------------------------------------- public static Connection getConnection() { Connection con = null; try { InitialContext context = new InitialContext(); DataSource ds = (DataSource) context.lookup("java:comp/env/jdbc/MySQL"); con = ds.getConnection(); } catch (NamingException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return con; } のlookupの箇所です。 ------------------------------------------ server.xml <Context>タグの中に <Resource name="jdbc/MySQL" auth="Container" type="javax.sql.Datasource"> <ResourceParams name="jdbc/MySQL"> <parameter>    <name>factory</name>   <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <!-- Max Active <parameter> <name>maxActive</name> <value>100</value> </parameter> --> <!-- Max Idle <parameter> <name>maxIdle</name> <value>30</value> </parameter> --> <!-- Max Wait <parameter> <name>maxWait</name> <value>10000</value> </parameter> --> <parameter> <name>username</name> <value>***</value> </parameter> <parameter> <name>password</name> <value>***</value> </parameter> <parameter> <name>driverClassName</name> <value>com.mysql.jdbc.Driver</value> </parameter> <parameter> <name>url</name> <value>jdbc:mysql://localhost/DB名?useUnicode=true&amp;characterEncording=Windows-31J</value> </parameter> </ResourceParams> </Resource> </Context> ---------------------------------------------- web.xml <resource-ref> <res-ref-name>jdbc/MySQL</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> ---------------------------------------------------- 必要なライブラリはTOMCAT_HOME/common/libに配置しています。 ------------エラーログ javax.naming.NamingException: Cannot create resource instance at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:132) at javax.naming.spi.NamingManager.getObjectInstance(Unknown Source) at org.apache.naming.NamingContext.lookup(NamingContext.java:791) at org.apache.naming.NamingContext.lookup(NamingContext.java:138) at org.apache.naming.NamingContext.lookup(NamingContext.java:779) at org.apache.naming.NamingContext.lookup(NamingContext.java:138) at org.apache.naming.NamingContext.lookup(NamingContext.java:779) at org.apache.naming.NamingContext.lookup(NamingContext.java:138) at org.apache.naming.NamingContext.lookup(NamingContext.java:779) at org.apache.naming.NamingContext.lookup(NamingContext.java:151) at org.apache.naming.SelectorContext.lookup(SelectorContext.java:136) at javax.naming.InitialContext.lookup(Unknown Source) at com.llc.aison.seikei.util.DBUtil.getConnection(DBUtil.java:18) 環境: Tomcat5.0 mysql eclipse3.1.1 jdk1.4_12 以上宜しくお願いします。

    • ベストアンサー
    • Java
  • Tomcat6のコネクションプーリングについて

    Tomcat6のコネクションプーリングについて 現在、以下の環境で開発を行っているのですが、 データソースからConnectionを取得できていない状況です。 過去に同様の内容が記載されていたのですが、 内容が理解できず投稿させていただいております。 【フォルダ構成】 test  |  |--META-INF  |   |  |   --context.xml  |  |--WEB-INF     |      --web.xml 【環境】 Windows XP Pro Eclipse3.3.2 apache2.2 tomcat6.0 jdk1.6.0_18 mysql-connector-java-5.1.12-bin.jar Struts2 以下に、context.xml、web.xml及び、サーブレットのコードを記載します ■web.xml=========== <?xml version="1.0" encoding="UTF-8"?> ~~(抜粋)~~ <resource-ref> <res-ref-name>test</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> </web-app> ■context.xml======= <?xml version="1.0" encoding="UTF-8"?> <Context displayName="test" docBase="test" path="/test" reloadable="false"> <Resource name="jdbc/test" auth="Container" type="javax.sql.DataSource" username="root" password="root" driverClassName="org.gjt.mm.mysql.Driver" url="jdbc:mysql://localhost/test?useUnicode=true&amp;characterEncoding=UTF-8" maxActive="4" maxWait="5000" maxIdle="2" validationQuery="select cont(*) from db_fuzoku" /> </Context> ■サーブレットコード(抜粋)===== public class test_Dao { DataSource ds; public ArrayList select(){ ArrayList list = new ArrayList(); try { // 初期コンテキストを取得 Context initCtx = new InitialContext(); Context envCtx = (Context) initCtx.lookup("java:comp/env"); // ルックアップしてデータソースを取得 ds = (DataSource) envCtx.lookup("jdbc/test"); } catch (Exception e) { e.printStackTrace(); } Connection con = null; Statement stmt = null; try { // データソースからConnectionを取得 con = ds.getConnection(); ==================== 以上、よろしくお願いします。

  • DBにかな情報が登録できません(JSP)

    <%@ page contentType="text/html; charset=SHIFT_JIS" import="java.sql.*,javax.naming.*,javax.sql.*,java.util.*" %> <%@ page import = "java.util.Date" %> <%@ page import = "java.text.DateFormat" %> <%@ page import = "java.text.SimpleDateFormat" %> <%@page import="java.text.NumberFormat" %> <% request.setCharacterEncoding("SHIFT_JIS"); %> <% Context ctx=new InitialContext(); DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/workshop"); Connection db=ds.getConnection(); String name = request.getParameter("Name"); String busyo = request.getParameter("Shozoku"); PreparedStatement prdStt3=db.prepareStatement("INSERT INTO Rireki (Name,Busyo) VALUES(?,?)"); prdStt3.setString(1,name); prdStt3.setString(2,busyo);; prdStt3.executeUpdate(); out.println("名前:" + name + "<BR>"); out.println("所属部署:" + busyo + "<BR>"); prdStt3.close(); db.close(); %> ========================== 【環境】 Webサーバ:Tomcat5.5,apache2.0.49 DB:MySQL4.1 JAVA:JDK1.5.0.7 ========================== 上記ソースでDBに情報を書き込もうとしましたが、うまくいきません。 半角英数字は登録できますが、かなは全角・半角ともに登録されていないようです。 パラメータに値そのものは入っているらしく、printlnで出力したところ、画面上で入力情報を確認出来ました。 どなたかお気づきの点がありましたら是非ともアドバイス下さい。 お願いいたします。

    • ベストアンサー
    • Java
  • LINUX文字化け

    こんにちは。 いつも勉強させていただいています。 質問があるのでよろしくお願いします。 以下のjsp、サーブレットプログラムによって DBアカウント"DBtest"のテーブル"test"に 2バイト文字を登録すると"?"と文字化けしてしまいます。 文字化けせず登録する方法(コーディング) を教えていただけないでしょうか 非常に困っております。 ご回答よろしくお願いします。 【環境】 データベース MYSQL 4.1.1 TOMCAT 4.1.31 【手順】 1. http://ドメイン/コンテキスト/test.jspにアクセス 2. 2バイト文字をテキストボックスに入力する。 3. 送信ボタンを押下する。 確認:mysqlにログインし"select * from test"    とコマンドを入力し実行する。 結果:2バイト文字の部分が"?"となっている。 ------------test.jsp--------------- <html> <head></head> <body> <form action="test" method="post" > <input type="text" name="test"> <input type="submit" value="送信"> </form> </body> </html> --------test.java-------- import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.ServletException; import java.io.IOException; import javax.servlet.ServletContext; import javax.servlet.RequestDispatcher; import java.io.PrintWriter; import java.sql.*; import java.util.*; public class test extends HttpServlet { String testStr="";   Connection con_info = null; Statement stmt = null; ResultSet rs_master = null;   ResultSet rs_transaction = null; Exception exception; public void doPost( HttpServletRequest req, HttpServletResponse res ) throws Exception { req.setCharacterEncoding( "Shift_JIS" ); res.setContentType( "text/html; charset=Shift_JIS" ); testStr=req.getParameter("test"); try { Class.forName( "com.mysql.jdbc.Driver" ); String jdbcurl = "jdbc:mysql://localhost/DBtest"; Properties props = new Properties(); props.put("user", "root"); props.put("password", "password"); props.put("useUnicode", "true"); props.put("characterEncoding", "Shift_JIS"); con_info = DriverManager.getConnection( jdbcurl, props ); String sql="insert into test(input_str) values('"+testStr+"')"; stmt = con_info.createStatement(); int kekka = stmt.executeUpdate(sql);    //省略 } catch(Exception e) { //省略(エラー画面遷移するコード) } } } -------------------------------------------------------

    • ベストアンサー
    • Java
  • JNDIでDataDourceにNullが入ってしまう

    いつもお世話になっています。 JNDIを使ってDataSourceを取得しようと思っているのですがNullが返ってきてしまってかなりハマッてます。 ご指導頂けたらと思います。 設定は下記のようになっています。 環境: jdk:1.4.2_12 tomcat:5.0 Mysql:4.0.20a-nt server.xml-------------------------------------------------- <Context docBase="C:\Documents and Settings\ESC\workspace\SNS\.deployables\SNS" path="/SNS" reloadable="true"> <Resource name="jdbc/MySQL" auth="Container" type="javax.sql.Datasource" /> <ResourceParams name="jdbc/MySQL"> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <!-- Max Active <parameter> <name>maxActive</name> <value>100</value> </parameter> --> <!-- Max Idle <parameter> <name>maxIdle</name> <value>30</value> </parameter> --> <!-- Max Wait <parameter> <name>maxWait</name> <value>10000</value> </parameter> --> <parameter> <name>username</name> <value>****</value> </parameter> <parameter> <name>password</name> <value>****</value> </parameter> <parameter> <name>driverClassName</name> <value>com.mysql.jdbc.Driver</value> </parameter> <parameter> <name>url</name> <value>jdbc:mysql://localhost/dbname?useUnicode=true&amp;characterEncording=Windows-31J</value> </parameter> </ResourceParams> </Context> web.xml-------------------------------------------------- <resource-ref> <res-ref-name>jdbc/MySQL</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> java側-------------------------------------------------- InitialContext ctx = new InitialContext(); DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/MySQL"); connection = ds.getConnection(); -------------------------------------------------------- どうか宜しくお願い致します。

  • XML文書をjavaを使ってCSV文書に...

    プログラム初心者なのですが csv.jpgのような形で、DOM,SAXどちらかを 使って変換したいのですが誰か教えてください。 xmlは -<item_list>- <item code="1"> <name>靴下</name> <maker>マイクロソフト</maker>- <option seq="1"> <attribute name="材質">ナイロン</attribute> <attribute name="サイズ">S</attribute> <attribute name="色">黒</attribute><attribute name="性別">男</attribute><price>500</price> </option>- <option seq="2"> <attribute name="材質">ナイロン</attribute> <attribute name="サイズ">M</attribute> <attribute name="色">黒</attribute> <attribute name="性別">男</attribute><price>500</price> ~ なものが続いてくる形です。 DTDは <?xml version="1.0" encoding="Shift_JIS" ?> <!ELEMENT item_list (item+)> <!ELEMENT item (name+,maker+,option+)> <!ATTLIST item code NMTOKENS #REQUIRED> <!ELEMENT name (#PCDATA)> <!ELEMENT maker (#PCDATA)> <!ELEMENT option (attribute+,price)> <!ATTLIST attribute name CDATA #REQUIRED> <!ELEMENT price (#PCDATA)> でやっています。 現在のプログラムの状態は import java.io.*; import javax.xml.parsers.*; import javax.xml.transform.*; import javax.xml.transform.stream.*; import javax.xml.transform.dom.*; import javax.xml.parsers.*; import org.xml.sax.*; import org.xml.sax.helpers.*; //文書の入出力 class Exam3{ public static void main(String args[]) throws Exception{ SAXParserFactory spf = SAXParserFactory.newInstance(); SAXParser sp = spf.newSAXParser(); //SAXの準備 SampleHandler1 sh = new SampleHandler1(); //パンドアの作成 sp.parse(new FileInputStream("item_list_japan.xml"), sh); //XML文書をロード } } class SampleHandler1 extends DefaultHandler{ //パンドラクラス int YS=0; int YS2=0; int YS3=0; String[] ST= new String[80000000]; int ST1=0; int ab=0; int ab2=0; String tin="null"; StringBuffer sb = new StringBuffer(); //文字列を用意 public void endDocument(){ //文書の終了 try{ //文字列を書き出す PrintWriter pw = new PrintWriter (new BufferedWriter (new FileWriter("List2.csv"))); pw.println(sb); pw.close(); }catch(Exception e){} } public void startElement(String namespaceURI, String localName, String qName, //qNameは要素 Attributes attrs) { if(qName.equals("item")){ YS = 0; YS2=0; ab2=0; sb.append("商品コード"+","); for(int i=0;i<attrs.getLength();i++){ sb.append(attrs.getValue(i)+","); } }else if(qName.equals("name")){ sb.append("商品名"+","); }else if(qName.equals("maker")){ sb.append("製造元"+","); }else if(qName.equals("option")){ if(YS2==0){ sb.append("オプション"+","); YS2=1; YS3=0; } } if(qName.equals("attribute")){ if(YS3==0){ for(int i=0;i<attrs.getLength();i++){ if(attrs.getValue(i)!=""){ sb.append(attrs.getValue(i)+","); } } YS=1; } }else if(YS==1){ YS3=1; } tin=qName; } public void endElement(String namespaceURI,String localName,String qName){ if(qName.equals("option")){ sb.append("\r\n"); } //tin=qName; if(qName.equals("price")){ if(ab2==0){ sb.append("\r\n"); ab2=1; } sb.append(",,,,"); while(ST[ab]!=null){ sb.append(ST[ab]); ab++; } } } public void characters(char[] ch,int start,int length){ String str = new String(ch,start,length); if(tin=="attribute"){ ST[ST1]=(str+","); ST1++; } } } です。 回答よろしくお願いします。

    • 締切済み
    • XML
  • Contextとは何でしょうか?

    Contextとは何でしょうか? HttpServletを継承するクラス(例えば、DoSomethingServlet)を定義する中で、しばしば getServletContext() の呼び出しにより、ServletContextインターフェイス型オブジェクト(以下、オブジェクトSCと略)への参照を得ますが、このオブジェクトSCとはなんなのか?、そもそもServletの世界においてContextとは一体なんなのか?、どうもピンと来ません。 http://java.sun.com/javase/6/docs/api/ javax.servlet.http Class HttpServlet Methods inherited from class javax.servlet.GenericServlet getServletContext javax.servlet Class GenericServlet getServletContext() Returns a reference to the ServletContext in which this servlet is running. (オブジェクトSCは、その中で、DoSomethingServletクラス型オブジェクトが実行中の、ServletContextインターフェイス型オブジェクトのことである。) javax.servlet Interface ServletContext Defines a set of methods that a servlet uses to communicate with its servlet container, for example, to get the MIME type of a file, dispatch requests, or write to a log file. (オブジェクトSCは、DoSomethingServletクラス型オブジェクトが、そのコンテナ(Tomcatなど)にメッセージを送るためのメソッドをまとめたオブジェクトである。) javax.naming Interface Context This interface represents a naming context, which consists of a set of name-to-object bindings. It contains methods for examining and updating these bindings. (一般に、Context(インターフェイス)型オブジェクトとは、binding(名前とオブジェクトの関連)をまとめたオブジェクトである。) JAVA ENTERPRIZE IN A NUTSHELL, Chap-6 (http://docstore.mik.ua/orelly/java-ent/jenut/ch06_03.htm) A naming service associates names with objects. An association between a name and an object is called a binding, and a set of such bindings is called a context. A name in a context can be bound to another context that uses the same naming conventions; the bound context is called a subcontext. For example, in a filesystem, a directory (such as /temp) is a context that contains bindings between filenames and objects that the system can use to manipulate the files (often called file handles). If a directory contains a binding for another directory (e.g., /temp/javax), the subdirectory is a subcontext. (contextは、サブcontextを持つことがある。サブcontextは、contextである。  → 任意のcontextに注目したとき、そのcontextは、親や子を持つことがある。) 以上、よろしくお願いします。

  • 生成されたサーブレットのエラーの件(jsp)

    javaの超初心者です。 人が書いたソースをまねて書いたのですがエラーが出てしまいます。 げんいんを教えてください。 ============================================================================================jspファイル <%@page import="java.util.*" contentType="text/html; charset=Shift_JIS"%> <% HELLO_ANKERT_TOP_DAO dao = new HELLO_ANKERT_TOP_DAO(); LinkedList<HELLO_ANKERT_TOP_BEEN> list = dao.selectAll(); %> </table></body></html> ============================================================================================been.javaファイル import java.io.Serializable; public class HELLO_ANKERT_TOP_BEEN implements Serializable { private int INT_TOTAL_CNT; // デフォルトコンストラクタ public HELLO_ANKERT_TOP_BEEN() {} public HELLO_ANKERT_TOP_BEEN( int INT_TOTAL_CNT, ) { this.INT_TOTAL_CNT = INT_TOTAL_CNT; } public int getINT_TOTAL_CNT(){ return INT_TOTAL_CNT; } public void setINT_TOTAL_CNT(int INT_TOTAL_CNT){ this.INT_TOTAL_CNT = INT_TOTAL_CNT; } } ============================================================================================dao.javaファイル import java.sql.*; import javax.naming.*; import javax.sql.*; import java.util.*; public class HELLO_ANKERT_TOP_DAO{ private String dataSourceName; public HELLO_ANKERT_TOP_DAO(String dsName) { dataSourceName = dsName; } public HELLO_ANKERT_TOP_DAO() { dataSourceName = "jdbc/demizu_Ankert"; } private Connection getConnection() { try { Context ctx = new InitialContext(); DataSource ds = (DataSource)ctx.lookup("java:comp/env/" + dataSourceName); Connection con = ds.getConnection(); return con; } catch(Exception e) { e.printStackTrace(); } return null; } private void closeConnection(Connection con) { try { con.close(); } catch(Exception e) { // 何もしない } } // 全件検索用メソッド public LinkedList<HELLO_ANKERT_TOP_BEEN> sele

    • ベストアンサー
    • Java

専門家に質問してみよう