Note that it is not possible to chain aliases together. So QM1 can't be an alias for QM2, which itself is an alias for QM3.
In Java, queue manager aliases are manipulated using the MQeConnectionAdminMsg. Refer to the Connection section for more information.
The real name of the queue manager is hRealTargetQMname, and the alias to this is hAliasName. Note that these strings will be duplicated internally, so could be freed if not required elsewhere.
rc = mqeAdministrator_QueueManager_addAlias(hAdministrator, &exceptBlk, hAliasName, hRealTargetQMName);