Thursday, October 15, 2015

Differences between Smart Cloud Cost Management Cloud and Enterprise version

Differences between Smart Cloud Cost Management Cloud and Enterprise version

IBM® SmartCloud Cost Management provides visibility into the usage and cost of your infrastructure and other non-IT resources. The software helps you track and assess shared computing resource usage accurately, and better manage the cost of your cloud and IT services.

Smart Cloud Cost Management  has two versions Cloud and Enterprise.

Differences between Smart Cloud Cost Management Cloud and Enterprise version

1) Latest versions
 The last version of Enterprise version is 2.1.0.1 and the first Cloud version is 2.1.0.3. After which 2.1.0.4 was released and 2.1.0.5 is in progress. Version 2.1.0.3 is also bundled with IBM Cloud Orchestrator. 2.1.0.5 will support Openstack Kilo in ICM.

2) WebSphere version used
2.1.0.3 is bundled with a cut down version of SCCM and uses WebSphere Liberty server as its runtime. The Enterprise version is 2.1.0.1 and  uses a full blown WebSphere and the version is 7.0.0.18.

3) Console
 In the Enterprise version Cognos and Jazz are in the same console. The cloud version uses Blaze. There is a new version of Blaze in the Cloud version. The enterprise version supports an older version of TIP.

4) Collectors
The Enterprise version has a wide number of  collectors than the cloud version. For example, collectors for middleware, software, databases, networks and support for financial information. For more details on the collectors supported, please see the below link.
https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/IBM%20SmartCloud%20Cost%20Management/page/SCCM%202.1%20Collectors

5) Users and Groups panels
There are additional panels for users and groups in the Enterprise version. The Cloud version has automated jobs for syncing users with Keystone.

6) Platforms Supported
The Enterprise version is supported on  RHEL, SuSE on x86, AIX, HPUX and Z/OS whereas the Cloud version is only supported on RHEL and x86.
The Enterprise version supports the following databases : Oracle SQL Server and DB2. The Cloud version supports DB2.

7) Database drivers
 Cognos in EE uses ODBC, whereas the newer cloud versions uses JDBC.

8) Browser Support
The Enterprise versions do not run on Chrome. The cloud versions supports Chrome,Firefox and IE 10.

Tuesday, October 13, 2015

 Connection to RabbitMQ using Java fails due to missing protocol.

When using Java to connect to a RabbitMQ service on a remote node using the rabbit java client, there are connection errors as below:
I have installed Rabbitmq server on Debian or Rhel machine. I want to connect this
 machine and publish message on it.o
 
      factory = new ConnectionFactory();
      logger.info("successfully opening a Connection to an AMQP broker..");
      factory.setUsername("guest");
      logger.info("Set the user name...");
      factory.setPassword("guest");
      logger.info("Set the password...");
      factory.setVirtualHost("/");
      logger.info("Set the virtual host...");
      factory.setHost("192.168.x.x");  //my server IP Address
      logger.info("The default host to use for connections..");
      factory.setPort(5672);
      logger.info("Set the target port..");
      connection = factory.newConnection();
 
 when i tried i got the following error:
 
 java.net.ConnectException: Connection timed out: connect
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
    at java.net.Socket.connect(Socket.java:529)
    at java.net.Socket.connect(Socket.java:478)
    at
 com.rabbitmq.client.ConnectionFactory.createFrameHandler(ConnectionFactory.java:342)
    at
 com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:380)
    at
 com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:403)
    at RabbitMQProducer12.producer(RabbitMQProducer12.java:43)
    at RabbitMQProducer12.main(RabbitMQProducer12.java:78)
 
To resolve the above issue:

1) Modify the Java code by adding the lines shown below, by adding the protocol using the factory methods. Specify the other parameters username, password,port ect. in addition to this.

String protocol = "TLSv1";
ConnectionFactory factory = new ConnectionFactory();
factory.useSslProtocol(this.protocol);

 and specify the protocol to be used to connect to rabbitMQ.

2) Also specify the protocol in the rabbitMQ configuration file /etc/rabbitmq/rabbitmq.config.

[
  {kernel, [

  ]},
  {ssl, [{versions, ['TLSv1']}]},
  {rabbit, [
    {ssl_listeners, [5671]},
    {ssl_options, [{cacertfile,"/etc/rabbitmq/ssl/cacert.pem"},
                    {certfile,"/etc/rabbitmq/ssl/cert.pem"},
                    {keyfile,"/etc/rabbitmq/ssl/key.pem"},
                    {verify,verify_none},
                    {fail_if_no_peer_cert,false}
                    ,{versions,['TLSv1']}
                   .....
..........
.........

  ]}
]

Using step 1 and 2 above helps in resolving connection errors when connecting to RabbitMQ using Java.