How to change default datapath in MQv8 - ibm-mq

I have two installation of MQ:
a. MQ v7.0.1.14 at E:\Program Files (x86)\IBM\WebSphere MQ
b. MQ v8.0.0.5 at C:\Program Files (x86)\IBM\WebSphereMQ_v8005
The datapath and logpath of version 8 is pointing at E:\Program Files (x86)\IBM\WebSphere MQ\Qmgrs and [...]\log.
Is there a way to change the datapath and logpath to some other directory? I don't see mqs.ini and qm.ini under C:\Program Files (x86)\IBM\WebSphereMQ_v8005.

When you have multiple installations of MQ, there is only one root location for the queue manager data. This location was set when you installed the first of your two installations and is where the mqs.ini file lives. The second install has no choice but to use the already present data path from the first installation.
You can change the data path for each queue manager at build time using the -ld and the -md options of the crtmqm command. The -ld option sets the log path and the -md option sets the data path. You can see the effect of these commands reflected in the mqs.ini file.
Keep in mind there is one global location for the mqs.ini file that serves all installations on a host even if you change the data path on a per-queue-manager basis.
Also be aware that the data path you configure is associated with the queue manager and not the installation. So if you migrate a queue manager from v7.0.1.x to v8.0.0.x it does not relocate the QMgr's data files to a different directory.
One last piece of advice is that it is possible to migrate a QMgr to a new location while it is down by moving the files and updating the mqs.ini file appropriately. The trick on Windows is to ensure that the MQ service account retains ownership of the files and is authorized down the entire path from the root of the drive. (Typically the BypassTraverseChecking AD permission is granted to the MQ service account and group to assure path permissions are not needed at every level.)
You do not see mqs.ini and qm.ini under C:\Program Files (x86)\IBM\WebSphereMQ_v8005 because they are in the data path.

Related

Writer initialization failed.Error opening output file.The system cannot find the path specified

In informatica pc I got an error like Writer initialization failed.Error opening output file.The system cannot find the path specified.
Even I checked the directories and file names but what exactly confused.
It's exactly as it says: the Writer failed to initialize, as it was not able to locate the path and file specified.
Note that PowerCenter Workflows and Mappings are executed on the Server. So while you develop on your local laptop (for example) and place a file in C:\Temp folder, and you are able to see the file, once you run the process, it will be executed on the Server. And the Server will not refer your laptop. It will look for C:\Temp location on its local disk. And if that's a unix box, there won't even be a C: path!
Hence, the process will fail with exactly the message you've seen: initialization failed, error opening output file. You need to place the file in the location accessible by Server.
In case of Writer, you name target location where the file will be created - make sure the user used by PowerCenter does have the write access.

How to reconfigure RabbitMQ not to use %appdata% on Windows?

How to reconfigure RabbitMQ not to use %appdata% for config files?
Follow up for question RabbitMQ: change port on Windows Server
as described, a how to on how to re-config rabbit MQ to use an arbitrary directory. This will have some benefits regarding access of the database files etc. when running as a service without having to redefine the %appdata% access rights, which are user bound.
In your windows environmental settings, you'll need to redefine RABBITMQ_BASE, I have tested it with c:\rmq (or one of the others as described in the documentation). Set it to the directory you want to target. See image:
Next, it seems you need to run some commands, I haven't been able to target the correct directory during or prior installation.
So, run the following commands, basically it reinstalls the service again:
C:\Program Files\RabbitMQ Server\rabbitmq_server-3.6.14\sbin>rabbitmq-service.bat remove
C:\Program Files\RabbitMQ Server\rabbitmq_server-3.6.14\sbin>rabbitmq-service.bat install
C:\Program Files\RabbitMQ Server\rabbitmq_server-3.6.14\sbin>rabbitmq-service.bat start
Optional: reinstall management plugin:
C:\Program Files\RabbitMQ Server\rabbitmq_server-3.6.14\sbin>rabbitmq-plugins enable rabbitmq_management
As you can see, the database files are placed in the c:\rmq directory.

run.as option does not work other than Nifi user

I want to run my NiFi application using ec2-user rather than default nifi user. I changed run.as=ec2-user in bootstrap.conf but it did not worked .It is not allowing me to start Nifi application getting following error while staring nifi service.
./nifi.sh start
nifi.sh: JAVA_HOME not set; results may vary
Java home:
NiFi home: /opt/nifi/current
Bootstrap Config File: /opt/nifi/current/conf/bootstrap.conf
User Runnug Nifi Application : sudo -u ec2-user
Error: Could not find or load main class org.apache.nifi.bootstrap.RunNiFi
Any pointer to this issue?
This is most likely a file permission problem, which is not covered by installing the service with nifi.sh install. A summary of the required permissions includes:
Read access to the entire distribution in the NIFI_HOME directory
Write access to the NIFI_HOME directory itself - NiFi will create a number of directories and files at runtime including logs, work, state, and various repositories.
Write access to the bin directory
Write access to the conf directory
Write access to the lib directory, and to all of the files in the lib directory
It is certainly possible to narrow the permissions by creating the working directories manually, and by adjusting NiFi's settings to rearrange the directory layout. But the permissions above should get you started.

how do I change the location of the httpd.conf for Apache on windows?

I am working on setting up a load balancing cluster on windows server 2012 and have a shared drive where I want the configuration files for Apache to exist at. This way each member of the LB can load the exact same config files. How do I change where the config file is located independently of where the ServerRoot is?
Start the Apache process with the -d parameter and give your alternative ServerRoot as an argument, though I'd imagine it would be a much better idea for you to use some mechanism to sync the files locally to each server.
Also read http://httpd.apache.org/docs/2.4/mod/core.html#mutex, as it's advised if you're running from a networked file system.
If you just want to specify the main config file, start the process with the -f parameter and the path to the config file as an argument.

File security attributes getting screwed up on file copy

I've a windows service that updates our product. It copies the product files into a temp directory, usually "C:\Windows\Temp", patches the binaries, and then uses MoveFileEx to copy the files back to the install directory on a reboot, usually "C:\Program Files\Product". The files in the install directory are inheriting their security attributes from the parent folder. After the copy, patch, and reboot, the files in the install directory are missing some ACLs. Specifically the files don't have the ACL for the Users group anymore so users can no longer run the program after the reboot.
Can anyone explain whats going on here? It seems that copying from the install directory to the temp directory, the files inherit the ACLs of the temp directory. On the MoveFileEx/Reboot, though, the files only inherit the ACLs that both the install and temp directories have in common.
In Windows if you copy a file the file takes on the ACLs of the destination directory. If you move a file the ACL goes with it overriding any it might inherit from that directory. I'm not sure how MoveFileEx might operate differently on a file.
The temp directory is usually located under the user profile (both %TMP% and %TEMP% usually point here) so copying files here will have permissions for that user. Moving those files to the program files directory will take only that users rights with them and therefore only runnable by the installing user.
One potential workaround is to patch copies of the files with-in the same directory but with different names. After the reboot, the patched versions could be swapped in. Alternatively, do a reboot first and then patch them in-place, and just back them up to the temp directory in the event a manual rollback is required.
If you really want to move them to a different location, creating a temp folder in the same place as the files to be patched would help the permissions stay the same assuming the directory is using inherited permissions.

Resources