الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

مشكلة فى تعامل Adf مع 2012 Ms Sql Server

Featured Replies

بتاريخ:
  • كاتب الموضوع

من البحث على الإنترنت

  • الردود 53
  • المشاهدات 9.1k
  • البداية
  • اخر رد

أكثر المشاركين في هذا الموضوع

الصور المنشورة

بتاريخ:

وما أدراك أن المشكلة تتعلق بالapplication module configuration

بتاريخ:
  • كاتب الموضوع

كما قلت لك فى السابق من خلال بحثى على الإنترنت وبالتحديد فى جزئية الpooling. ولكن دعنى أعرف من وجهة نظرك ومن واقع خبرتك بما تتعلق هذه المشكلة والسبب الرئيسى لها والحل المناسب لها. ولكم جزيل الشكر.

بتاريخ:

بشكل عام لا يوجد سبب محدد

نحن جربنا تشغيل ADF على 5 قواعد بيانات مختلفة ولم تحدث معنا مشكلة

معظم هذه المشاكل تكون ناتجة عن خطأ بسبب قلة الخبرة

خاصية واحدة قد تسبب مشاكل كثيرة

يجب مراجعة خطوات إنشاء التطبيق واحدة واحدة لمعرفة المشكلة لكن لا يوجد سبب واضح لها

عموماً هل قمت بإنشاء الجداول باستخدام النوع Java أم ماذا؟

بتاريخ:
  • كاتب الموضوع

قمت بإنشاء الbussiness components كلها بإستخدام oracle domains

بتاريخ:
  • كاتب الموضوع

SQL Platform: SQL Server

Data Type Map: Oracle Domains

بتاريخ:

خطأ

يجب استخدام Java

بتاريخ:
  • كاتب الموضوع

سأجربها

بتاريخ:
  • كاتب الموضوع

مازالت المشكلة موجوده وعند الحذف يحدث crash ولايستطيع الحذف ولاحظت فى آخر سطر فى الlog الآتى(يظهر هذا السطر عند محاولة الحذف):

<oracle.adf.view> <FacesBindingUtils> <pushCurrencyToModel> <ADFv: No row found for rowKey: [oracle.jbo.Key[null ]].> 

مع العلم أنى جربت مرة الإعدادات بهذه الطريقة:
SQL Platform: SQL Server

Data Type Map: Java

 

ومرة أخرة بهذه الطريقة:
 

SQL Platform: SQL92

Data Type Map: Java

تم تعديل بواسطة SHDev

بتاريخ:

هذا يعني وجود مشكلة في تعيين primary key

بتاريخ:
  • كاتب الموضوع

ولكننى بالفعل قد عينت primary key فى جداول قاعدة البيانات وتأكدت أنها موجودة أيضاً فى الentities والviews. فما الحل إذاً

بتاريخ:
  • كاتب الموضوع

مع العلم أن فى الentities الprimary key معمول على حقل إسمهID والdata type هى Integer لأنه فى قاعدة البيانات هذا الحقل الdata type الخاص به هو Int

بتاريخ:

يجب تتبعها بشكل دقيق

لا يوجد شئ واضح

الأكيد أن هناك خطوة خطأ

لا يمكن الحكم عليها دون تدقيق

بتاريخ:
  • كاتب الموضوع

يرجى العلم بأننى أول مرة أنشئ مشروع متصل بقاعدة بيانات sql server فكل المشاريع التى تعلمت عليها الADF كلها متصله بقاعدة بيانات أوراكل فهل توجد قواعد وconfiguration معينة لإنشاء مشروع متصل بsql server

بتاريخ:

لا يوجد

بتاريخ:
  • كاتب الموضوع

بعد بحث وجدت تلك الصفحة على موقع أوراكل تتحدث عن تعامل الADF مع قواعد البيانات الأخرى ولكننى وجدت صعوبة فى تنفيذ بعض ما بها وبالتحديد فى جزء الprimary key عندما وضعت هذا الأمر فى الexpression الخاص بحقل ID وهو  ()oracle.jbo.server.uniqueid.UniqueIdHelper.getNextId عند التنفيذ أجد هذا الخطأ فى الlog:

Error(1): General error during instruction selection: java.lang.NoClassDefFoundError: Unable to load class oracle.jbo.server.uniqueid.UniqueIdHelper due to missing dependency javax/transaction/Transaction java.lang.RuntimeException: java.lang.NoClassDefFoundError: Unable to load class oracle.jbo.server.uniqueid.UniqueIdHelper due to missing dependency javax/transaction/Transaction at org.codehaus.groovy.control.CompilationUnit.convertUncaughtExceptionToCompilationError(CompilationUnit.java:1083) at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1061) at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:583) at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:561) at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:538) at oracle.jdevimpl.groovy.compiler.translator.GroovyCompiler.compile(GroovyCompiler.java:86) at oracle.jdevimpl.groovy.compiler.translator.GroovyTranslator.translate(GroovyTranslator.java:96) at oracle.jdeveloper.compiler.UnifiedBuildSystem$CompileThread.buildGraph(UnifiedBuildSystem.java:938) at oracle.jdeveloper.compiler.UnifiedBuildSystem$CompileThread.buildProjectFilesImpl(UnifiedBuildSystem.java:1269) at oracle.jdeveloper.compiler.UnifiedBuildSystem$CompileThread.buildProjectFiles(UnifiedBuildSystem.java:1063) at oracle.jdeveloper.compiler.UnifiedBuildSystem$CompileThread.buildAll(UnifiedBuildSystem.java:1560) at oracle.jdeveloper.compiler.UnifiedBuildSystem$CompileThread.run(UnifiedBuildSystem.java:2088) Caused by: java.lang.NoClassDefFoundError: Unable to load class oracle.jbo.server.uniqueid.UniqueIdHelper due to missing dependency javax/transaction/Transaction at org.codehaus.groovy.vmplugin.v5.Java5.configureClassNode(Java5.java:389) at org.codehaus.groovy.ast.ClassNode.lazyClassInit(ClassNode.java:261) at org.codehaus.groovy.ast.ClassNode.getDeclaredMethods(ClassNode.java:849) at org.codehaus.groovy.ast.ClassNode.getMethods(ClassNode.java:864) at org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.findMethodsWithGenerated(StaticTypeCheckingVisitor.java:3477) at org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.findMethod(StaticTypeCheckingVisitor.java:3551) at org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethodCallExpression(StaticTypeCheckingVisitor.java:2666) at org.codehaus.groovy.ast.expr.MethodCallExpression.visit(MethodCallExpression.java:64) at org.codehaus.groovy.ast.CodeVisitorSupport.visitExpressionStatement(CodeVisitorSupport.java:69) at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitExpressionStatement(ClassCodeVisitorSupport.java:193) at org.codehaus.groovy.ast.stmt.ExpressionStatement.visit(ExpressionStatement.java:40) at org.codehaus.groovy.ast.CodeVisitorSupport.visitBlockStatement(CodeVisitorSupport.java:35) at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitBlockStatement(ClassCodeVisitorSupport.java:163) at org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:69) at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClassCodeContainer(ClassCodeVisitorSupport.java:101) at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitConstructorOrMethod(ClassCodeVisitorSupport.java:112) at org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitConstructorOrMethod(StaticTypeCheckingVisitor.java:1634) at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitMethod(ClassCodeVisitorSupport.java:123) at org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.startMethodInference(StaticTypeCheckingVisitor.java:1953) at org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethod(StaticTypeCheckingVisitor.java:1912) at org.codehaus.groovy.ast.ClassNode.visitContents(ClassNode.java:1063) at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClass(ClassCodeVisitorSupport.java:50) at org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitClass(StaticTypeCheckingVisitor.java:240) at org.codehaus.groovy.transform.StaticTypesTransformation.visit(StaticTypesTransformation.java:63) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSite.invoke(PojoMetaMethodSite.java:189) at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:53) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45) at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:55) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120) at org.codehaus.groovy.control.customizers.ASTTransformationCustomizer.call(ASTTransformationCustomizer.groovy:292) at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1047) ... 10 more

بتاريخ:

رأيي أنك تبحث في الاتجاه الخطأ

أؤكد لك عدم وجود مشكلة في التعامل مع قواعد البيانات المختلفة

قد تكون اخترت اختياراً خطأ أثناء التنفيذ سبب مشاكل لك

بتاريخ:
  • كاتب الموضوع

لكن ما سبب وجود مشكلة فى الprimary key إذاً

بتاريخ:
  • كاتب الموضوع

عندما بحثت عن تلك الصفحة كان لحل مشكلة الprimary key التى تظهر لى

بتاريخ:
  • كاتب الموضوع

لأن الsequence الموجود فى قاعدة البيانات لايعمل فى الADF تلقائيا عند الrefresh on insert  أو refresh on update بل يجب أن أعيد تشغيل الapplication مرة أخرى

تم تعديل بواسطة SHDev

بتاريخ:

استخدم خاصية auto number

بتاريخ:
  • كاتب الموضوع

الحداول الموجودة بقاعدة البيانات حقل الID الموجود بها مفعل به خاصية Identity Increment وكنت قد جربت أن أجعل الdata type لهذا الحقل فى الADF جعلته DB Sequence ولكن لم يحدث شيئ.

ما لاحظته فى المشكلة أنه فى الصفحة عندما أقوم بإنشاء حقل جديد وحفظه ثم محاولة حذفه يحدث crash ولايستطيع حذفه ولكن عند حذف أى حقل آخر أنشيء سابقاً قبل تشغيل الapplication أجد أنه يتم حذفه بدون مشاكل

 

بتاريخ:
  • كاتب الموضوع

يرجى العلم أيضاً أن عملية الauto increment تعمل على مستوى قاعدة البيانات بمعنى أنه مثلاً لوقمت بتشغيل الappmodule tester وقمت بإنشاء حقل جديد وحفظه لايظهر لك رقم الID الجديد الذى أخذه ولكن يظهر عند إعادة تحميل الappmodule tester

بتاريخ:

خطأ لا يمكن استخدام DB Sequence هنا

بتاريخ:
  • كاتب الموضوع

ما الحل إذاً لهذه المشكلة

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.