HP Vertica - cannot connect and copy from different cluster - networking

I'm trying to migrate a Vertica cluster.
The connect statement succeeds:
CONNECT TO VERTICA mydb USER myuser PASSWORD '' on 'private-ip',5433;
The copy does not:
COPY otherdb.whatever FROM VERTICA mydb.table.whatever;
ERROR 4534: Receive on v_otherdb_node0002: Message receipt from v_otherdb_node0005 failed [canceled]
ROLLBACK 4236: One or more nodes did not open a data connection to this node. This may indicate a network configuration problem. Check that the private interfaces used for communication among the cluster hosts reside in the same subnet and are returned first by host address lookup
/etc/hosts on both clusters are configured correctly so that hostname maps to private-ip across all machines. Telnet, ping, netcat connectivity is all good.
I have tried various options:
Use identical catalog and data paths in case a mismatch is not tolerated
Use the same db name and different db names - no difference
The 2 clusters have 6 machines each, and each cluster is healthy and all nodes are up and responsive.
Any suggestions on what else I can try?

The issue was that one of the clusters had been set to EXPORT ON a different subnet than the private subnet.
Doing netcat, I discovered that:
My new cluster was sending the old cluster it's correct private node IPs
The old cluster was responding with it's node public IPs, even though "select * from nodes;" was returning the private IPs
From this I ran:
select * from vs_subnets;
select database_name, export_subnet from databases;
It turns out somebody (long ago) had configured the old cluster to use the public subnet.
You can revert this by running:
ALTER DATABASE <my-db-name> EXPORT ON DEFAULT;
This makes the DB go back to its regular subnet.

Related

R3 Corda IOUs: Why 'http://localhost:10013/api/example/ious' is giving empty response even though I created IOUs using web interface

I recently strated exploring Corda. I have installed Corda and sample CorDapp (cordapp_example) on my location machine and ran the nodes and tried to access ious of one of the nodes (Lets say PartyA), by using below URL, it just showing empty []. I also noticed error:
netty.AMQPClient.operationComplete - Failed to connect to 20.198.218.65:10011 {}
Note that this IP address is not my local address.
http://localhost:10013/api/example/ious
[] is the standard output until an IOU has actually been issued onto the ledger. I think port 10013 corresponds to PartyC's webserver, so you'd have to create an IOU involving PartyC first.

How to access dcm4chee data from another dcm4chee

Lets consider a scenario
I have two system A and B
IP Address A - 192.168.0.1 database IP is 192.168.0.1 for pacs
IP Address B - 192.168.0.2 database IP is 192.168.0.2 for pacs
I have sent dicom image in A using dcmsnd command
how to access system A data from system B
So what i need to configure in system A or system B to access system A's dicom data in system B
I can recommend two options depending on your needs.
Option 1
The first option assumes you do actually want redundant data (ie: two separate storage locations and two separate databases) and not just two dcm4chee instances.
In this case you can set up dicom forwarding from A to B. This is setup in the Forward Service bean of dcm4chee (via the jmx-console or via the jboss twiddle.sh script). More complex forwarding (ie: based on modalities) can be configured in the Forward Service2 bean.
The official docs are here:
Forward Service
Forward Service2
If you need more details, I have written a blog post that goes into more depth about using and setting up Forward Service here:
DCM4CHEE: PACS SYNCHRONIZATION VIA DICOM FORWARDING
Option 2
The second option assumes you don't really need data redundancy, but you do need two separate dcm4chee instances.
No problem. You can setup two dcm4chee instances on separate boxes to share the same database (which lives either at 192.168.0.1 or 192.168.0.2 or perhaps somewhere else) and storage device.
For this to really work, you will need to configure both dcm4chee instances to not only connect to the same db, but to also store their archives on the same shared network storage device which you mount on each box.
The storage directory is configured via the DefaultStorageDirectory property of the FileSystemMgt group=ONLINE_STORAGE bean in the jmx-console.
Note: My answer assumes the dcm4chee-2.x series, and not the successor arc-light series (though the steps should be conceptually similar in either case - ie: setup forwarding or shared storage).

Primary MacAddress of Network Devices to update

I have developed an SNMP scanner for my college project. It will scan all the SNMP devices connected to the network and store the information to the inventory. I have successfully done the basic scanning of System properties, Interfaces and Device specific properties.
I have a periodic schedule to do SNMPWalk over the network again to update the inventory. I am formulating a way to update already scanned devices without creating duplicates in the inventory.
As of now, I have planned to use Physical address of the interface (Network adapter) to update the device apart from hostname.
OID to fetch PhysicalAddress for interface,
1.3.6.1.2.1.2.2.1.6
But the problem is, obviously there would be multiple interfaces which might result in multiple PhysicalAddress.
Usually, If I want to take a computer's MacAddress, I will take MacAddress for the network adapter whose IPEnabled is true.
But here I am not able to arrive at some Primary MacAddress to use for update the device.
I have planned to go with use the first MacAddress in the list of Interfaces as of now, which is a workaround and not obviously a better solution, then hostname of the device for update.
Any suggestions on this?

Starting OpenStack instances programmatically

I am using OpenStack4J to interact with OpenStack. My goal at this point is simply to launch an instance. I can do this manually using my tenant: rosemend. And when I do this, I have a network called rosemond (Id: a9b097b3-af47-4222-b98e-f1b631f9ec45) that I select and make the instance part of.
However, using OpenStack4J, I am not able to make any progress. OpenStack4j requires a network port that I don't seem to be able to figure out how to set.
The call to set this network port would look like:
serverCreateBuilder.addNetworkPort("0a44eedc-8298-4544-87d7-094c7b34708e")
First I tried the Id of the rosemond network itself (a9b097b3-af47-4222-b98e-f1b631f9ec45). The error message in this case is:
Port id a9b097b3-af47-4222-b98e-f1b631f9ec45 could not be found.
Next, within OpenStack, when I click on the rosemond network, I see a list of 5 items called ports. I then tried using each of them resulting each in error message:
Port 0a44eedc-8298-4544-87d7-094c7b34708e is still in use.
And when I do not pass a network port at all, I get the error:
It is not allowed to create an interface on external network c6fb539b-2013-405c-903a-4700a00d954b
My question is what is the value I should use here?
I will recommend you to go with JClouds instead. In my opinion is easier to use and the documentation is better.
See my answer in Openstack cloud (identity service, nova service and swift service) vs Java application. There is some sample code in GitHub that you can check.
1) To create a vm with an existing port, port id is required.
2) The port you use to boot the vm instance must be in DOWN status (Detached). If the port is attached to an instance (active), Openstack will report conflict. For Openstack4j, it throws a ClientResponseException exception with a message: port xxxis still in use.
See https://developer.openstack.org/api-ref/compute/?expanded=create-server-detail

Get Ip address of computes nodes in an openstack network

I planned to create a service that sleeps/wakes unused compute nodes in an openstack environment for that i need an ip address of the compute nodes.
Is there any API or command available to get IP address( not the name of the compute node )machines present in the openstack network?
There are two types of IP addresses used in OpenStack cloud environment setup.
Fixed:
Accessed only from the openstack network, That is among VMs.
Floating :
Could be accessed from outside the OpenStack cloud network, basically works on a different interface, and generally this IP is made available to public to access this VM from outside netwrok.
Now, you know this, follow the API given here.
http://api.openstack.org/api-ref.html#ext-os-ext-ips
While getting IP address through the JSON response, first you have to check whether it is fixed or floating.
That should answer your question, I hope. If not then please inform.
You can query the nova database and get the ip of all the compute nodes in the compute_node tables. I wrote a small function in python to do this for one of my tests.
def get_compute_nodes(parameters):
try:
password = parameters['password']
db=_mysql.connect(user="root",passwd=password, db="nova")
query = """select host_ip from compute_nodes where deleted=0"""
db.query(query)
r=db.use_result()
results = r.fetch_row(maxrows=0)
return results
except Exception as exp:
print "Error in accessing the Nova database"
print exp

Resources