{"id":3797,"date":"2021-06-09T17:42:19","date_gmt":"2021-06-09T17:42:19","guid":{"rendered":"https:\/\/nenadnoveljic.com\/blog\/?p=3797"},"modified":"2021-06-09T17:42:22","modified_gmt":"2021-06-09T17:42:22","slug":"why-replacing-an-ojdbc-driver-in-oracle-cloud-control-installation-is-a-bad-idea","status":"publish","type":"post","link":"https:\/\/nenadnoveljic.com\/blog\/why-replacing-an-ojdbc-driver-in-oracle-cloud-control-installation-is-a-bad-idea\/","title":{"rendered":"Why Replacing an OJDBC Driver in Oracle Cloud Control Installation is a Bad Idea?"},"content":{"rendered":"<p>In a <a href=\"https:\/\/nenadnoveljic.com\/blog\/tns-12599-tnscryptographic-checksum-mismatch\/\">previous blog post<\/a>, I wrote about alert log being flooded with the &#8220;TNS-12599: TNS:cryptographic checksum mismatch&#8221; error messages. As it turned out, this problem has being caused by older OJDBC drivers (below the version 8) because they don\u2019t handle encryption correctly under some circumstances. In particular, the connections were coming from Oracle Cloud Control Agent 13.4, which still uses OJDBC 7.<\/p>\n<p>In the <a href=\"https:\/\/nenadnoveljic.com\/blog\/tns-12599-tnscryptographic-checksum-mismatch\/#comment-20014\">comments section<\/a>, it was reported that simply replacing the OJDBC 7 with the version 8 resolved this issue.<\/p>\n<p>But I realized that this would create a much bigger problem.<\/p>\n<p>OJDBC is a jar file, which is, basically, an archive of compiled Java classes. A Cloud Control patch doesn&#8217;t need to replace the whole OJDBC file, it can update just a subset of classes instead.<\/p>\n<p>Here&#8217;s an example of such a patch:<\/p>\n<pre><code>\/export\/home\/oracle\/27350958\/files\/\nfind . -name \"*.class\"\n.\/jdbc\/lib\/ojdbc8.jar\/oracle\/net\/ns\/NIOAcceptPacket.class\n.\/jdbc\/lib\/ojdbc8_g.jar\/oracle\/net\/ns\/NIOAcceptPacket.class\n.\/jdbc\/lib\/ojdbc8dms.jar\/oracle\/net\/ns\/NIOAcceptPacket.class\n.\/jdbc\/lib\/ojdbc8dms_g.jar\/oracle\/net\/ns\/NIOAcceptPacket.class\n.\/oracle.javavm.jrf\/12.2.0.1.0\/rdbms.jrf.common.symbol\/modules\/oracle.jdbc\/ojdbc8dms_g.jar\/oracle\/net\/ns\/NIOAcceptPacket.class\n.\/oracle.javavm.jrf\/12.2.0.1.0\/rdbms.jrf.common.symbol\/modules\/oracle.jdbc\/ojdbc8.jar\/oracle\/net\/ns\/NIOAcceptPacket.class\n.\/oracle.javavm.jrf\/12.2.0.1.0\/rdbms.jrf.common.symbol\/modules\/oracle.jdbc\/ojdbc8_g.jar\/oracle\/net\/ns\/NIOAcceptPacket.class\n.\/oracle.javavm.jrf\/12.2.0.1.0\/rdbms.jrf.common.symbol\/modules\/oracle.jdbc\/ojdbc8dms.jar\/oracle\/net\/ns\/NIOAcceptPacket.class<\/code><\/pre>\n<p>This patch updates the Java class NIOAcceptPacket in whatever ojdbc8*.jar is in the destination path.<\/p>\n<p>So if you replaced the original OJDBC with something else prior to patching, you would end up with your own unique Frankenstein driver that nobody has ever tested. Consequently, no one would be able to help you in the case of odd issues, which would almost inevitably arise.<\/p>\n<p>In conclusion, don&#8217;t be tempted to replace OJDBC drivers in your Cloud Control installation, even when this resolves the primary problem.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A custom OJDBC driver can break patching <a href=\"https:\/\/nenadnoveljic.com\/blog\/why-replacing-an-ojdbc-driver-in-oracle-cloud-control-installation-is-a-bad-idea\/\" class=\"more-link\">Continue Reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[43,40],"tags":[],"class_list":["post-3797","post","type-post","status-publish","format-standard","hentry","category-cloud-control","category-jdbc"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Why Replacing an OJDBC Driver in Oracle Cloud Control Installation is a Bad Idea? - All-round Database Topics<\/title>\n<meta name=\"description\" content=\"A custom OJDBC driver can break patching\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/nenadnoveljic.com\/blog\/why-replacing-an-ojdbc-driver-in-oracle-cloud-control-installation-is-a-bad-idea\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Why Replacing an OJDBC Driver in Oracle Cloud Control Installation is a Bad Idea? - All-round Database Topics\" \/>\n<meta property=\"og:description\" content=\"A custom OJDBC driver can break patching\" \/>\n<meta property=\"og:url\" content=\"https:\/\/nenadnoveljic.com\/blog\/why-replacing-an-ojdbc-driver-in-oracle-cloud-control-installation-is-a-bad-idea\/\" \/>\n<meta property=\"og:site_name\" content=\"All-round Database Topics\" \/>\n<meta property=\"article:published_time\" content=\"2021-06-09T17:42:19+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-06-09T17:42:22+00:00\" \/>\n<meta name=\"author\" content=\"Nenad Noveljic\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@NenadNoveljic\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nenad Noveljic\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/why-replacing-an-ojdbc-driver-in-oracle-cloud-control-installation-is-a-bad-idea\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/why-replacing-an-ojdbc-driver-in-oracle-cloud-control-installation-is-a-bad-idea\\\/\"},\"author\":{\"name\":\"Nenad Noveljic\",\"@id\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/#\\\/schema\\\/person\\\/51458d9dd86dbbdd19f5add451d44efa\"},\"headline\":\"Why Replacing an OJDBC Driver in Oracle Cloud Control Installation is a Bad Idea?\",\"datePublished\":\"2021-06-09T17:42:19+00:00\",\"dateModified\":\"2021-06-09T17:42:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/why-replacing-an-ojdbc-driver-in-oracle-cloud-control-installation-is-a-bad-idea\\\/\"},\"wordCount\":235,\"commentCount\":0,\"articleSection\":[\"Cloud Control\",\"JDBC\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/why-replacing-an-ojdbc-driver-in-oracle-cloud-control-installation-is-a-bad-idea\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/why-replacing-an-ojdbc-driver-in-oracle-cloud-control-installation-is-a-bad-idea\\\/\",\"url\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/why-replacing-an-ojdbc-driver-in-oracle-cloud-control-installation-is-a-bad-idea\\\/\",\"name\":\"Why Replacing an OJDBC Driver in Oracle Cloud Control Installation is a Bad Idea? - All-round Database Topics\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/#website\"},\"datePublished\":\"2021-06-09T17:42:19+00:00\",\"dateModified\":\"2021-06-09T17:42:22+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/#\\\/schema\\\/person\\\/51458d9dd86dbbdd19f5add451d44efa\"},\"description\":\"A custom OJDBC driver can break patching\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/why-replacing-an-ojdbc-driver-in-oracle-cloud-control-installation-is-a-bad-idea\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/why-replacing-an-ojdbc-driver-in-oracle-cloud-control-installation-is-a-bad-idea\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/why-replacing-an-ojdbc-driver-in-oracle-cloud-control-installation-is-a-bad-idea\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Why Replacing an OJDBC Driver in Oracle Cloud Control Installation is a Bad Idea?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/\",\"name\":\"All-round Database Topics\",\"description\":\"Nenad Noveljic\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/#\\\/schema\\\/person\\\/51458d9dd86dbbdd19f5add451d44efa\",\"name\":\"Nenad Noveljic\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a97b796613ea48ec8a7b79c8ffe1c685dcffc920c68121f6238d5caab5070670?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a97b796613ea48ec8a7b79c8ffe1c685dcffc920c68121f6238d5caab5070670?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a97b796613ea48ec8a7b79c8ffe1c685dcffc920c68121f6238d5caab5070670?s=96&d=mm&r=g\",\"caption\":\"Nenad Noveljic\"},\"sameAs\":[\"nenad-noveljic-9b746a6\",\"https:\\\/\\\/x.com\\\/NenadNoveljic\"],\"url\":\"https:\\\/\\\/nenadnoveljic.com\\\/blog\\\/author\\\/nenad\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Why Replacing an OJDBC Driver in Oracle Cloud Control Installation is a Bad Idea? - All-round Database Topics","description":"A custom OJDBC driver can break patching","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/nenadnoveljic.com\/blog\/why-replacing-an-ojdbc-driver-in-oracle-cloud-control-installation-is-a-bad-idea\/","og_locale":"en_US","og_type":"article","og_title":"Why Replacing an OJDBC Driver in Oracle Cloud Control Installation is a Bad Idea? - All-round Database Topics","og_description":"A custom OJDBC driver can break patching","og_url":"https:\/\/nenadnoveljic.com\/blog\/why-replacing-an-ojdbc-driver-in-oracle-cloud-control-installation-is-a-bad-idea\/","og_site_name":"All-round Database Topics","article_published_time":"2021-06-09T17:42:19+00:00","article_modified_time":"2021-06-09T17:42:22+00:00","author":"Nenad Noveljic","twitter_card":"summary_large_image","twitter_creator":"@NenadNoveljic","twitter_misc":{"Written by":"Nenad Noveljic","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/nenadnoveljic.com\/blog\/why-replacing-an-ojdbc-driver-in-oracle-cloud-control-installation-is-a-bad-idea\/#article","isPartOf":{"@id":"https:\/\/nenadnoveljic.com\/blog\/why-replacing-an-ojdbc-driver-in-oracle-cloud-control-installation-is-a-bad-idea\/"},"author":{"name":"Nenad Noveljic","@id":"https:\/\/nenadnoveljic.com\/blog\/#\/schema\/person\/51458d9dd86dbbdd19f5add451d44efa"},"headline":"Why Replacing an OJDBC Driver in Oracle Cloud Control Installation is a Bad Idea?","datePublished":"2021-06-09T17:42:19+00:00","dateModified":"2021-06-09T17:42:22+00:00","mainEntityOfPage":{"@id":"https:\/\/nenadnoveljic.com\/blog\/why-replacing-an-ojdbc-driver-in-oracle-cloud-control-installation-is-a-bad-idea\/"},"wordCount":235,"commentCount":0,"articleSection":["Cloud Control","JDBC"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/nenadnoveljic.com\/blog\/why-replacing-an-ojdbc-driver-in-oracle-cloud-control-installation-is-a-bad-idea\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/nenadnoveljic.com\/blog\/why-replacing-an-ojdbc-driver-in-oracle-cloud-control-installation-is-a-bad-idea\/","url":"https:\/\/nenadnoveljic.com\/blog\/why-replacing-an-ojdbc-driver-in-oracle-cloud-control-installation-is-a-bad-idea\/","name":"Why Replacing an OJDBC Driver in Oracle Cloud Control Installation is a Bad Idea? - All-round Database Topics","isPartOf":{"@id":"https:\/\/nenadnoveljic.com\/blog\/#website"},"datePublished":"2021-06-09T17:42:19+00:00","dateModified":"2021-06-09T17:42:22+00:00","author":{"@id":"https:\/\/nenadnoveljic.com\/blog\/#\/schema\/person\/51458d9dd86dbbdd19f5add451d44efa"},"description":"A custom OJDBC driver can break patching","breadcrumb":{"@id":"https:\/\/nenadnoveljic.com\/blog\/why-replacing-an-ojdbc-driver-in-oracle-cloud-control-installation-is-a-bad-idea\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/nenadnoveljic.com\/blog\/why-replacing-an-ojdbc-driver-in-oracle-cloud-control-installation-is-a-bad-idea\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/nenadnoveljic.com\/blog\/why-replacing-an-ojdbc-driver-in-oracle-cloud-control-installation-is-a-bad-idea\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/nenadnoveljic.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Why Replacing an OJDBC Driver in Oracle Cloud Control Installation is a Bad Idea?"}]},{"@type":"WebSite","@id":"https:\/\/nenadnoveljic.com\/blog\/#website","url":"https:\/\/nenadnoveljic.com\/blog\/","name":"All-round Database Topics","description":"Nenad Noveljic","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/nenadnoveljic.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/nenadnoveljic.com\/blog\/#\/schema\/person\/51458d9dd86dbbdd19f5add451d44efa","name":"Nenad Noveljic","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/a97b796613ea48ec8a7b79c8ffe1c685dcffc920c68121f6238d5caab5070670?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a97b796613ea48ec8a7b79c8ffe1c685dcffc920c68121f6238d5caab5070670?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a97b796613ea48ec8a7b79c8ffe1c685dcffc920c68121f6238d5caab5070670?s=96&d=mm&r=g","caption":"Nenad Noveljic"},"sameAs":["nenad-noveljic-9b746a6","https:\/\/x.com\/NenadNoveljic"],"url":"https:\/\/nenadnoveljic.com\/blog\/author\/nenad\/"}]}},"_links":{"self":[{"href":"https:\/\/nenadnoveljic.com\/blog\/wp-json\/wp\/v2\/posts\/3797","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nenadnoveljic.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nenadnoveljic.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nenadnoveljic.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nenadnoveljic.com\/blog\/wp-json\/wp\/v2\/comments?post=3797"}],"version-history":[{"count":1,"href":"https:\/\/nenadnoveljic.com\/blog\/wp-json\/wp\/v2\/posts\/3797\/revisions"}],"predecessor-version":[{"id":3809,"href":"https:\/\/nenadnoveljic.com\/blog\/wp-json\/wp\/v2\/posts\/3797\/revisions\/3809"}],"wp:attachment":[{"href":"https:\/\/nenadnoveljic.com\/blog\/wp-json\/wp\/v2\/media?parent=3797"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nenadnoveljic.com\/blog\/wp-json\/wp\/v2\/categories?post=3797"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nenadnoveljic.com\/blog\/wp-json\/wp\/v2\/tags?post=3797"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}