{"id":1306,"date":"2018-07-12T09:31:28","date_gmt":"2018-07-12T08:31:28","guid":{"rendered":"https:\/\/dbafox.com\/?p=1306"},"modified":"2018-07-12T10:13:42","modified_gmt":"2018-07-12T09:13:42","slug":"oracle-install-clusterware-test-multicast-on-private-interconnect","status":"publish","type":"post","link":"https:\/\/dbafox.com\/?p=1306","title":{"rendered":"Oracle &#8211; Install Clusterware &#8211; Test udp multicast on Private Interconnect (and get maximum MTU)"},"content":{"rendered":"<h1>Test Multicast on Private Interconnect (and get maximum MTU)<\/p>\n<h1>\n<p>There are several ways to test multicast communication using udp. I was debugging an oracle Clusterware installation &#8211; the clusterware on the second node would not completely start (specifically ocssd and crsd would not start on node2).<\/p>\n<p>All standard\/published Oracle tests passed. See <a href=\"https:\/\/dbafox.com\/oracle-clusterware\/\" rel=\"noopener\" target=\"_blank\">Oracle &#8211; Clusterware Installation and Configuration<\/a><\/p>\n<p>Without going into too much detail, the Clusterware daemons would not start on the second node because the MTU on some of the switches in the network was not configured correctly.<\/p>\n<p>The two java programs below can be used to test whether multicast is working on the network between two servers. More specifically, they can be used to determine the maximum MTU that can be used between the two servers, taking into consideration all network elements (NICs, switches, routers).<\/p>\n<p>Switches\/routers may be configured to support Jumbo frames. MTU 9000 (maybe set to 9150 on switch\/routers)<\/p>\n<p>The default MTU on switches may be 1400!<\/p>\n<p>Normally, the NICs on the Linux server are set to 1500 MTU.<\/p>\n<p>Private interconnect NICs\/bond can be set to 9000 if all intermediate network elements support and are configured for Jumbo frames<\/p>\n<\/p>\n<h2>MultiCastTestReceiveLoop.java<\/h2>\n<p>This program is used to receive udp datagrams on a socket (max. 9150 &#8211; covers Jumbo frames).<\/p>\n<p>The communication follows a similar path as that used between Oracle Clusterware processes.<\/p>\n<p>To compile: <GRID_HOME>\/jdk\/bin\/javac MultiCastTestReceiveLoop.java<\/p>\n<p>To execute: <GRID_HOME>\/jdk\/bin\/java -classpath . MultiCastTestReceiveLoop 230.0.1.0 42424<\/p>\n<pre class=\"brush: perl; title: ; notranslate\" title=\"\">\r\nimport sun.net.*;\r\nimport java.net.*;\r\n\r\npublic class MultiCastTestReceiveLoop {\r\n    public MultiCastTestReceiveLoop() {\r\n        MultiCastTestReceiveLoop MultiCastTestReceiveLoop = new MultiCastTestReceiveLoop(42424,&quot;230.0.1.0&quot;);\r\n    }\r\n    \r\n    public MultiCastTestReceiveLoop(int port,String group) {\r\n\r\n\ttry {\r\n\twhile (true) { \r\n\t\r\n        \/\/ Create the socket and bind it to port 'port'.\r\n        MulticastSocket s = new MulticastSocket(port);\r\n\r\n        \/\/ join the multicast group\r\n\ts.setNetworkInterface(NetworkInterface.getByName(&quot;&lt;interconnect interface&gt;&quot;));\r\n        s.joinGroup(InetAddress.getByName(group));\r\n \r\n        byte buf&#x5B;] = new byte&#x5B;9500];\r\n        DatagramPacket pack = new DatagramPacket(buf, buf.length);\r\n\r\n\r\n\ts.receive(pack);\r\n\tSystem.out.println(&quot;Received data from: &quot; + pack.getAddress().toString() + &quot;:&quot; + pack.getPort() + &quot; with length: &quot; + pack.getLength());\r\n\tSystem.out.write(pack.getData(),0,pack.getLength());\r\n\tSystem.out.println();\r\n\r\n        s.leaveGroup(InetAddress.getByName(group));\r\n        s.close();\r\n\t} \/\/ end while true\r\n\r\n        }\r\n\r\n\r\n        \/\/ Adding just a catch-all \r\n        catch (Exception e)\r\n        {\r\n           e.printStackTrace();\r\n        }\r\n\r\n    }\r\n\r\n    public static void main(String&#x5B;] args) {\r\n        if (args.length == 2) { \r\n        MultiCastTestReceiveLoop MultiCastTestReceiveLoop = new MultiCastTestReceiveLoop(Integer.parseInt(args&#x5B;1]),args&#x5B;0]);\r\n        }\r\n        else {\r\n            MultiCastTestReceiveLoop MultiCastTestReceiveLoop = new MultiCastTestReceiveLoop();\r\n        }\r\n    }\r\n}\r\n<\/pre>\n<h2>MultiCastTestSend.java<\/h2>\n<p>This program is used to send udp datagrams on a socket. The buffer is filled with the letter &#8216;a&#8217; (length set with the nbytes argument on the command line<\/p>\n<p>The communication follows a similar path as that used between Oracle Clusterware processes.<\/p>\n<p>To compile: <GRID_HOME>\/jdk\/bin\/javac MultiCastTestSend.java<\/p>\n<p>To execute: <GRID_HOME>\/jdk\/bin\/java -classpath . MultiCastTestSend 230.0.1.0 42424<\/p>\n<pre class=\"brush: perl; title: ; notranslate\" title=\"\">\r\nimport sun.net.*;\r\nimport java.net.*;\r\n\r\npublic class MultiCastTestSend {\r\n    public MultiCastTestSend() {\r\n        MultiCastTestSend multiCastTestSend = new MultiCastTestSend(42424,&quot;230.0.1.0&quot;,10);\r\n    }\r\n\r\n    public MultiCastTestSend(int port,String group,int nbytes) {\r\n\r\n        int ttl = 1;\r\n        try {\r\n        \/\/ Create the socket\r\n        MulticastSocket s = new MulticastSocket();\r\n\r\n\t\/\/ set LAN interface to send on\r\n\ts.setNetworkInterface(NetworkInterface.getByName(&quot;&lt;interconnect interface&gt;&quot;));\r\n\r\n        \/\/ Fill the buffer with some data\r\n        byte buf&#x5B;] = new byte&#x5B;nbytes];\r\n        for (int i=0; i&lt;buf.length; i++) buf&#x5B;i] = (byte)i;\r\n        \/\/ Create a DatagramPacket \r\n        DatagramPacket pack = new DatagramPacket(buf, buf.length,\r\n                                                 InetAddress.getByName(group), port);\r\n\r\n        s.setTimeToLive(ttl);\r\n        s.send(pack);\r\n        \/\/ And when we have finished sending data close the socket\r\n        System.out.println(&quot;Sent bytes to &quot; + pack.getAddress().toString());\r\n        s.close();\r\n          }\r\n        catch (Exception e)\r\n        {\r\n        e.printStackTrace();\r\n        }\r\n\r\n\r\n    }\r\n\r\n    public static void main(String&#x5B;] args) {\r\n        if (args.length == 3) { \r\n        MultiCastTestSend multiCastTestSend = new MultiCastTestSend(Integer.parseInt(args&#x5B;1]),args&#x5B;0],Integer.parseInt(args&#x5B;2]));\r\n        }\r\n        else {\r\n            MultiCastTestSend multiCastTestSend = new MultiCastTestSend();\r\n        }\r\n    }\r\n}\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Test Multicast on Private Interconnect (and get maximum MTU) There are several ways to test multicast communication using udp. I was debugging an oracle Clusterware installation &#8211; the clusterware on the second node would not completely start (specifically ocssd and &hellip; <a href=\"https:\/\/dbafox.com\/?p=1306\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"pgc_sgb_lightbox_settings":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[43,28],"tags":[63,65,64],"class_list":["post-1306","post","type-post","status-publish","format-standard","hentry","category-oracle-rac","category-oracle-technical","tag-mtu","tag-multicast","tag-udp"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Oracle - Install Clusterware - Test udp multicast on Private Interconnect (and get maximum MTU) - dbafox<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/dbafox.com\/?p=1306\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Oracle - Install Clusterware - Test udp multicast on Private Interconnect (and get maximum MTU) - dbafox\" \/>\n<meta property=\"og:description\" content=\"Test Multicast on Private Interconnect (and get maximum MTU) There are several ways to test multicast communication using udp. I was debugging an oracle Clusterware installation &#8211; the clusterware on the second node would not completely start (specifically ocssd and &hellip; Continue reading &rarr;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/dbafox.com\/?p=1306\" \/>\n<meta property=\"og:site_name\" content=\"dbafox\" \/>\n<meta property=\"article:published_time\" content=\"2018-07-12T08:31:28+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-07-12T09:13:42+00:00\" \/>\n<meta name=\"author\" content=\"Ray Fox\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ray Fox\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/dbafox.com\/?p=1306\",\"url\":\"https:\/\/dbafox.com\/?p=1306\",\"name\":\"Oracle - Install Clusterware - Test udp multicast on Private Interconnect (and get maximum MTU) - dbafox\",\"isPartOf\":{\"@id\":\"https:\/\/dbafox.com\/#website\"},\"datePublished\":\"2018-07-12T08:31:28+00:00\",\"dateModified\":\"2018-07-12T09:13:42+00:00\",\"author\":{\"@id\":\"https:\/\/dbafox.com\/#\/schema\/person\/287adc474c1aebd398752ac4dcfe27eb\"},\"breadcrumb\":{\"@id\":\"https:\/\/dbafox.com\/?p=1306#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/dbafox.com\/?p=1306\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/dbafox.com\/?p=1306#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/dbafox.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Oracle &#8211; Install Clusterware &#8211; Test udp multicast on Private Interconnect (and get maximum MTU)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/dbafox.com\/#website\",\"url\":\"https:\/\/dbafox.com\/\",\"name\":\"dbafox\",\"description\":\"DBA Technical Information\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/dbafox.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/dbafox.com\/#\/schema\/person\/287adc474c1aebd398752ac4dcfe27eb\",\"name\":\"Ray Fox\",\"sameAs\":[\"http:\/\/www.dbafox.com\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Oracle - Install Clusterware - Test udp multicast on Private Interconnect (and get maximum MTU) - dbafox","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:\/\/dbafox.com\/?p=1306","og_locale":"en_GB","og_type":"article","og_title":"Oracle - Install Clusterware - Test udp multicast on Private Interconnect (and get maximum MTU) - dbafox","og_description":"Test Multicast on Private Interconnect (and get maximum MTU) There are several ways to test multicast communication using udp. I was debugging an oracle Clusterware installation &#8211; the clusterware on the second node would not completely start (specifically ocssd and &hellip; Continue reading &rarr;","og_url":"https:\/\/dbafox.com\/?p=1306","og_site_name":"dbafox","article_published_time":"2018-07-12T08:31:28+00:00","article_modified_time":"2018-07-12T09:13:42+00:00","author":"Ray Fox","twitter_misc":{"Written by":"Ray Fox","Estimated reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/dbafox.com\/?p=1306","url":"https:\/\/dbafox.com\/?p=1306","name":"Oracle - Install Clusterware - Test udp multicast on Private Interconnect (and get maximum MTU) - dbafox","isPartOf":{"@id":"https:\/\/dbafox.com\/#website"},"datePublished":"2018-07-12T08:31:28+00:00","dateModified":"2018-07-12T09:13:42+00:00","author":{"@id":"https:\/\/dbafox.com\/#\/schema\/person\/287adc474c1aebd398752ac4dcfe27eb"},"breadcrumb":{"@id":"https:\/\/dbafox.com\/?p=1306#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/dbafox.com\/?p=1306"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/dbafox.com\/?p=1306#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/dbafox.com\/"},{"@type":"ListItem","position":2,"name":"Oracle &#8211; Install Clusterware &#8211; Test udp multicast on Private Interconnect (and get maximum MTU)"}]},{"@type":"WebSite","@id":"https:\/\/dbafox.com\/#website","url":"https:\/\/dbafox.com\/","name":"dbafox","description":"DBA Technical Information","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/dbafox.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Person","@id":"https:\/\/dbafox.com\/#\/schema\/person\/287adc474c1aebd398752ac4dcfe27eb","name":"Ray Fox","sameAs":["http:\/\/www.dbafox.com"]}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p3ecMb-l4","_links":{"self":[{"href":"https:\/\/dbafox.com\/index.php?rest_route=\/wp\/v2\/posts\/1306","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dbafox.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dbafox.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dbafox.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/dbafox.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1306"}],"version-history":[{"count":7,"href":"https:\/\/dbafox.com\/index.php?rest_route=\/wp\/v2\/posts\/1306\/revisions"}],"predecessor-version":[{"id":1313,"href":"https:\/\/dbafox.com\/index.php?rest_route=\/wp\/v2\/posts\/1306\/revisions\/1313"}],"wp:attachment":[{"href":"https:\/\/dbafox.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1306"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dbafox.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1306"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dbafox.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1306"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}