2010-05-20 10 views
5

के लिए जेडीबीसी में ग्राहक जानकारी सेटिंग मेरे पास जावा एप्लिकेशन है जिसे ऑडिट करने की आवश्यकता है (इसलिए मुझे स्पष्ट रूप से एक तरीका चाहिए जिसमें ऐप को एप्लिकेशन नाम से पहचाना जा सके)। मैं googled और पाया विधि .setClientInfo जो एक स्वनिर्धारित नाम के साथ आवेदन दर्ज करने की अनुमति देता है कि ojdbc14, तो मैं यह काम पाने के लिए कोशिश कर रहा हूँ, लेकिन मैं निम्नलिखित त्रुटि मिलती है:ओरेकल

Exception in thread "main" java.lang.AbstractMethodError: oracle.jdbc.driver.T4CConnection.setClientInfo(Ljava/lang/String;Ljava/lang/String;)V

मैं Oracle 10g एक्सप्रेस के साथ ojdbc14 उपयोग कर रहा हूँ । मैं लाइन सेट नहीं करते हैं:

connection.setClientInfo("ApplicationName","Customers"); 

यह बहुत अच्छी तरह से काम करता है .... और लेखा परीक्षा की जानकारी की जाँच करके मुझे लगता है कि Oracle अनुप्रयोग नाम हो जाता है देख सकते हैं: OS_program_name = JDBC पतला ग्राहक है, लेकिन मैं कोई तरीका होना चाहिए इसे अनुकूलित नाम के लिए बदलने के लिए।

उस लाइन को अपूर्ण करने के द्वारा जो एप्लिकेशन नाम सेट करना है, यह उपर्युक्त त्रुटि देता है।

प्रति ऑरैक दस्तावेज यह विधि Connection ऑब्जेक्ट के लिए उपलब्ध है। क्या आपको कोई समस्या है कि इस मुद्दे को कैसे हल किया जाए?

उत्तर

9

AbstractMethodError के लिए, कृपया जाँच Why do I get java.lang.AbstractMethodError when trying to load a blob in the db?

आदेश में Oracle में अपने कनेक्शन भेद करने के लिए आप नीचे दिए गए इस नमूना कोड का उपयोग कर सकते हैं:

Properties jdbcProperties = new Properties(); 

this.jdbcProperties.put("user", userName); 
this.jdbcProperties.put("password", password); 
this.jdbcProperties.put("v$session.program", "YourApplicationName"); 
DriverManager.getConnection(url, jdbcProperties); 

तो जाँच वी $ सत्र अपने कनेक्शन के लिए कार्यक्रम स्तंभ के खिलाफ समूहीकरण ..

+0

मैं वास्तव में आपकी मदद करने वाले व्यक्ति की सराहना करता हूं यह वास्तव में मेरे लिए सहायक था ... मैंने आपके द्वारा दी गई लाइनों को लागू किया और यह ठीक काम करता है .... बहुत धन्यवाद, ईमानदारी से। –

+0

यह सुनकर खुशी हुई कि यह काम करता है। हालांकि एक और बात यह है कि जब आप अपने ओरेकल डीबी से कनेक्ट करने के लिए ओसीआई यूआरएल का उपयोग कर रहे हों तो यह कोड काम नहीं करेगा। यह सिर्फ पतले यूआरएल के लिए काम करता है, मैं इस बारे में ओरेकल को नहीं समझता। इस बिंदु पर आप अपने अनुप्रयोगों का पता लगाने के लिए मॉड्यूल नाम और कार्रवाई सेट करने के लिए DBMS_APPLICATION_INFO पैकेज का उपयोग कर सकते हैं। – gokhant