بيئة التكوين لمجموعة اتصال قاعدة بيانات SQL Server2000 الخاصة بـ Tomcat في JSP:
1. قاعدة البيانات: Microsoft SQL Server 2000
2. برنامج تشغيل قاعدة البيانات: net.sourceforge.jtds.jdbc.Driver
نظرة عامة على JNDI (واجهة تسمية جافا والدليل):
يوفر Tomcat4(5) مثالًا لتطبيق JNDI--InitialContext المتوافق مع خدمات تطبيق Java Enterprise Edition. يتم تعيين بياناتها الأولية في ملف $CATALINA_HOME/conf/server.xml ويمكن الرجوع إليها من خلال العناصر التالية في وصف بيئة تطبيق الويب (/WEB-INF/web.xml):
1)
2)
3)
يتم تعيين "InitialContext" عند تهيئة تطبيق الويب لدعم مكونات تطبيق الويب. يتم وضع جميع الإدخالات والموارد في قسم java:comp/env في مساحة الاسم JNDI. انقر على عناوين URL التالية لمزيد من المعلومات:
1) تسمية جافا وواجهة الدليل
2) مواصفات منصة J2EE
إعداد موارد JNDI لإعداد موارد JNDI، استخدم المعرفات التالية في ملف $CATALINA_HOME/conf/server.xml:
1)
2)
3)
4)
يجب وضع المعرفات المذكورة أعلاه بين
بالإضافة إلى ذلك، يتم تعيين الأسماء والقيم المحددة في واصف تطبيق الويب (/WEB-INF/web.xml) أيضًا في السياق الأولي، عند تمكينه بواسطة عنصر
يمكن تعيين المتغيرات العامة في
نظرة عامة على تجمع اتصال قاعدة البيانات:
تعد اتصالات قواعد البيانات موردًا بالغ الأهمية ومحدودًا ومكلفًا، خاصة في تطبيقات الويب متعددة المستخدمين. يمكن أن تؤثر إدارة اتصالات قاعدة البيانات بشكل كبير على قابلية التوسع ومتانة التطبيق بأكمله وتؤثر على مؤشرات أداء البرنامج. تم اقتراح تجمع اتصال قاعدة البيانات لمعالجة هذه المشكلة.
تجمع اتصال قاعدة البيانات مسؤول عن تخصيص وإدارة وتحرير اتصالات قاعدة البيانات، فهو يسمح للتطبيقات بإعادة استخدام اتصال قاعدة البيانات الحالي بدلاً من إعادة إنشاء اتصالات قاعدة البيانات التي يتجاوز وقت خمولها الحد الأقصى لوقت الخمول لتجنب الأخطاء الناجمة عن الفشل في التحرير اتصال قاعدة البيانات بسبب فقدان اتصال قاعدة البيانات. يمكن لهذه التقنية تحسين أداء عمليات قاعدة البيانات بشكل كبير.
سيقوم تجمع اتصال قاعدة البيانات بإنشاء عدد معين من اتصالات قاعدة البيانات ووضعها في تجمع الاتصال أثناء التهيئة. يتم تعيين عدد اتصالات قاعدة البيانات هذه حسب الحد الأدنى لعدد اتصالات قاعدة البيانات. بغض النظر عما إذا كانت اتصالات قاعدة البيانات هذه مستخدمة أم لا، فسيتم دائمًا ضمان أن يحتوي تجمع الاتصال على هذا العدد من الاتصالات على الأقل. يحد الحد الأقصى لعدد اتصالات قاعدة البيانات في تجمع الاتصال من الحد الأقصى لعدد الاتصالات التي يمكن أن يشغلها تجمع الاتصال. عندما يتجاوز عدد الاتصالات التي يطلبها التطبيق من تجمع الاتصال الحد الأقصى لعدد الاتصالات، ستتم إضافة هذه الطلبات إلى طابور الانتظار. يجب أن يأخذ إعداد الحد الأدنى لعدد الاتصالات والحد الأقصى لعدد الاتصالات في تجمع اتصالات قاعدة البيانات في الاعتبار العوامل التالية:
1) الحد الأدنى لعدد الاتصالات هو عدد اتصالات قاعدة البيانات التي يحتفظ بها تجمع الاتصال، لذلك إذا لم يستخدم التطبيق كمية كبيرة من اتصالات قاعدة البيانات، فسيتم إهدار كمية كبيرة من موارد اتصال قاعدة البيانات؛
2) الحد الأقصى لعدد الاتصالات هو الحد الأقصى لعدد الاتصالات التي يمكن لتجمع الاتصال التقدم لها. إذا تجاوز طلب اتصال قاعدة البيانات هذا العدد، فستتم إضافة طلبات اتصال قاعدة البيانات اللاحقة إلى قائمة انتظار الانتظار، مما سيؤثر على عمليات قاعدة البيانات اللاحقة.
3) إذا كان الفرق بين الحد الأدنى لعدد الاتصالات والحد الأقصى لعدد الاتصالات كبيرًا جدًا، فسيكون طلب الاتصال الأول مربحًا، وطلبات الاتصال اللاحقة التي تتجاوز الحد الأدنى لعدد الاتصالات تعادل إنشاء اتصال قاعدة بيانات جديد. ومع ذلك، لن يتم تحرير اتصالات قاعدة البيانات هذه التي يزيد حجمها عن الحد الأدنى لعدد الاتصالات مباشرة بعد الاستخدام، وسيتم وضعها في تجمع الاتصال لانتظار إعادة الاستخدام أو تحريرها بعد انتهاء مهلة الخمول.
المتطلبات الأساسية لتكوين تجمع اتصال قاعدة بيانات Tomcat:
1. يجب تثبيت بيئة تشغيل Java؛
2. يجب أن يكون هناك خادم قاعدة بيانات SQL Server2000 (لا يلزم أن يكون محليًا)؛
3. يجب أن يكون لديك jtds.jar ووضعه في الدليل $CATALINA_HOME/common/lib (هنا فقط). يتم استخدامه لأن برنامج تشغيل Java SQL Server الخاص بـ Microsoft لا يدعم الاستعلامات الثانوية، والتي يمكن العثور عليها عبر الإنترنت. تستخدم حاليا jtds-0.6.jar.
قم بتعيين تجمع اتصال قاعدة البيانات في $CATALINA_HOME/conf/server.xml:
ما يلي هو رمز التكوين الذي يجب وضعه بين
<مسار السياق = "/ الجودة" docBase = "الجودة" debug = "0" قابل لإعادة التحميل = "صحيح" crossContext = "صحيح">
<اسم المورد = "jdbc/connectDB" auth = "الحاوية" نوع = "javax.sql.DataSource"/>
<المعلمة>
<الاسم>ماكس أكتيفالاسم>
<القيمة>100القيمة>
المعلمة>
<المعلمة>
<القيمة>30القيمة>
المعلمة>
<المعلمة>
<القيمة>10000القيمة>
المعلمة>
<المعلمة>
<الاسم>إزالة مهجورالاسم>
<القيمة>صحيحالقيمة>
المعلمة>
<المعلمة>
<الاسم>إزالةAbandonedTimeoutالاسم>
<القيمة>60القيمة>
المعلمة>
<المعلمة>
<الاسم>السجل مهجورالاسم>
<القيمة>خطأالقيمة>
المعلمة>
<المعلمة>
<الاسم>المصنعالاسم>
المعلمة>
<المعلمة>
<الاسم>اسم المستخدمالاسم>
المعلمة>
<المعلمة>
<الاسم>كلمة المرورالاسم>
المعلمة>
<المعلمة>
<الاسم>اسم فئة السائقالاسم>
المعلمة>
<المعلمة>
<الاسم>عنوان URLالاسم>
المعلمة>
السياق>
وفيما يلي وصف لبعض المعلمات:
<مسار السياق = "/ الجودة" docBase = "الجودة" debug = "0" قابل لإعادة التحميل = "صحيح" crossContext = "صحيح">
في:
1) يحدد المسار المسار، ودليل الجودة المعين هنا هو $CATALINA_HOME/webapps؛
2) الدليل الجذر لملف docBase.
3) أداة إعادة التحميل ما إذا كان سيتم إعادة الترجمة عند تحديث صفحة الويب.
4) maxActive الحد الأقصى لعدد اتصالات قاعدة البيانات في تجمع الاتصال. اضبط على 0 بلا حدود.
5) maxIdle الحد الأقصى لوقت الخمول لاتصال قاعدة البيانات. بعد فترة الخمول هذه، سيتم وضع علامة على اتصال قاعدة البيانات على أنه غير متاح ثم يتم تحريره. اضبط على 0 بلا حدود.
6) maxWait هو الحد الأقصى لوقت الانتظار لإنشاء اتصال. إذا تم تجاوز هذا الوقت، سيتم تلقي استثناء. اضبط على -1 للإشارة إلى عدم وجود حد.
7) قم بإزالة عمليات إعادة التدوير المهجورة (عادةً ما يتم نسيان إطلاقها) لاتصالات قاعدة البيانات في تجمع الاتصال.
8) RemoveAbandonedTimeout إذا لم يتم استخدام اتصال قاعدة البيانات لفترة طويلة، فسيتم اعتباره مهجورًا وإعادته إلى تجمع الاتصال.
9) سجل السجل المهجور إعادة تدوير اتصالات قاعدة البيانات المهجورة.
10) برنامج تشغيل driverClassName JDBC.
11) تقوم سلسلة اتصال قاعدة بيانات URL بتعيين المورد المشار إليه في $CATALINA_HOME/webapps/quality/WEB-INF/web.xml:
ما يلي هو رمز التكوين الذي يجب وضعه في
<المرجع-المرجع>
فيما يلي الوصف الضروري للمعلمات:
1) الوصف وصف للمصدر المشار إليه.
2) اسم المورد res-ref-name. راجع
3) نوع المورد نوع الدقة. راجع <اسم المورد = "jdbc/connectDB" auth = "Container" type = "javax.sql.DataSource"/> أعلاه
استخدام الموارد في JSP:
يعد هذا جزءًا من التعليمات البرمجية لملف صفحة الويب jsp في دليل فرعي معين ضمن $CATALINA_HOME/webapps/quality:
<%@ page contentType="text/html;charset=GBK"%>
<%@ صفحة errorPage="error.jsp"%>
<%@ page import="javax.naming.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="java.sql.*"%>
<أتش تي أم أل>
<الرأس>
الرأس>
<الجسم>
<%
………………
………………
// عمليات قاعدة البيانات
السياق ctx=null;
اتصال cnn=null;
البيان stmt=null;
ResultSet rs=null;
يحاول
{
ctx=new PrimaryContext();
إذا (ctx==فارغة)
رمي استثناء جديد ("لا توجد بيئة مطابقة")؛
DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/connectDB");
إذا (س == فارغة)
رمي استثناء جديد ("لا توجد قاعدة بيانات مطابقة")؛
cnn=ds.getConnection();
stmt=cnn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery("اختر * من الجدول1")
;
…………………
}
أخيراً
{
إذا (ص! = فارغة)
rs. Close();
إذا (ستمت! = فارغة)
stmt. Close();
إذا (سي إن إن! = فارغة)
cnn.Close();
إذا (ctx!=فارغة)
ctx. Close();
}
%>
الجسم>