code: private StructuredProxyPushSupplier getStructuredProxyPushSupplier(String channelName)
                      throws DevFailed {
          StructuredProxyPushSupplier structuredProxyPushSupplier =
                  StructuredProxyPushSupplierHelper.narrow(proxySupplier);
          if (structuredProxyPushSupplier == null) {
              Except.throw_event_system_failed("API_NotificationServiceFailed",
                      "Failed to narrow the push supplier due to AdminLimitExceeded (hint : make sure the notifd daemon is running on this host",
                      "EventConsumer.connect_event_channel");
              return null;    //  Just to remove warning
          }
          // Connect to the proxy consumer
          try {
              structuredProxyPushSupplier.connect_structured_push_consumer(_this(orb));
          } catch (NullPointerException e) {
              e.printStackTrace();
              Except.throw_event_system_failed("API_NotificationServiceFailed",
                      e + " detected when subscribing to " + channelName,
                      "EventConsumer.connect_event_channel");
          } catch (org.omg.CosEventChannelAdmin.AlreadyConnected ex) {
              Except.throw_event_system_failed("API_NotificationServiceFailed",
                      "Failed to connect the push supplier due to CosEventChannelAdmin.AlreadyConnected.AlreadyConnected  exception",
                      "EventConsumer.connect_event_channel");
          } catch (org.omg.CosEventChannelAdmin.TypeError ex) {
              Except.throw_event_system_failed("API_NotificationServiceFailed",
                      "Failed to connect the push supplier due to CosEventChannelAdmin.AlreadyConnected.TypeError  exception",
                      "EventConsumer.connect_event_channel");
          }
          return structuredProxyPushSupplier;
      }
docs: ===============================================================