Forum

This content is now out of date.

Visit Our Community

Filter UUIDs

When I use the built in YellowFin Import / Export functionality in order to promote YellowFin reports across our environments (ex. dev, qa, staging, prod), the filter UUIDs of existing reports are changed when I replace the reports with new versions.
This is causing errors in our YellowFin WebServices calls, since the defined UUIDs no longer apply to the YellowFin report.
Is there a way to import and replace an existing report while keeping the filter UUIDs intact?
Thanks for you help.

Our YellowFin Version:
System Information
Application Version: 7.1
Build: 20150114
Java Version: 1.7.0_21
Operating System: Linux 2.6.32-504.el6.x86_64 (amd64)
Hi,

When replacing items in your target environment, the Filter UUIDs are replaced with the Filter UUID's from the export xml.

I have tested this in 2 different environments, and re-imported over the top of the same report numerous times.

Each time, the FilterUUID specified in the XML file is imported into the system, and overwrites the FilterUUID of the report you are replacing.

If this is not what you're experiencing, are you able to provide some detailed info as to what the exported/current filterUUID is , and then what happens after the import process?

Anything that can help me understand what is happening in your environment.

Thanks,
David
David,

Thank you for the response but I think we have a different issue occurring. We ran into similar issues where the imported Yellowfin objects worked correctly on the primary Yellowfin server in staging, but did not exist on the secondary node. Since both Yellowfin instances share a single configuration database, we thought that the import would be immediately available on both nodes. Once we had the Secondary node restarted, the imported object were then available on that node. Based on that, it seems like our issues are with the Yellowfin clustering. We looked through the Yellowfin admin console yesterday for a way to force Yellowfin to reload its configuration from the database, but we were unable to find a setting. Is there a way to reload the content or do we have to restart the secondary node after each deployment?
Hi,

Sorry for the delay on this.

What you're facing is indeed related to the nodes in your cluster not synchronizing correctly.

You will need to ensure your cluster has been configured correctly in order for this to work.
This issue is not related to the import or Yellowfin DB.

See the following documentation for detailed info on clustering :

Yellowfin 7 Clustering Guide

Regards,
David
Hi All,

We are having exactly the same problem too. When I import content into a clustered environment it is only appearing on one server. Once I have restarted the services it then appears on both servers. Please note that this does not occur on all content . For example when I create a report or import the story board templates it appears on both servers. I feel that it has something to do with the categories not syncing up properly. For example when I create a new report under an existing category it will appear on both servers. However when I create a new category it will only appear on the server that it was created on and does not sync until services are restarted.

Brad
Hi guys,

Just checking if there is any update on this one?
Hi Brad,

I've just tested this scenario out over here (at YF) and so far can't replicate the issue. I'm using YF 7.1 20150225 with Apache Tomcat/6.0.37, and I created a new category and sub-category on node 1, flicked the switch to use node 2 and the new category/sub-category were there without having to restart node 2

From what you've described it sounds like you may not have any inter-node messaging going on.

Only elements that are cached in memory rely on inter-node communication to be notified of changes.
The notification will remove the stale information from the caches, or force a refresh.

Content that is not cached is loaded from the database, which all nodes share, therefore changes will propagate automatically without the need for messaging between nodes. The things that you have said are working don't rely on messaging.

To check that inter-node messaging is working, you can load a licence on one node, and check that the new licence has propagated automatically to the other nodes. If the licence doesn't propagate without restarting Yellowfin, then messaging is not working.

If the licence is propagating, then we can assume messaging is working and we can investigate where messages are not being sent when they should be.


Please let us know how the above licence test goes.

regards,
Dave
Hi David,

Thanks for the reply. I have uploaded the license and it has not propagate to the other nodes. How do we enable inter node messaging?

Regards
Brad
Hi Brad,

to enable the inter-node messaging you will need to follow the instructions on page 8, "Yellowfin for Application Messaging" of the above clustering guide in which you modify the web.xml file to enable either the Dynamic or Legacy mode.

regards,
Dave
Hi David,

We have followed the guide to enable inter node messaging using the dynamic mode and then restarted services.
I tried re uploading the license file and this has not prooagated across the servers within the cluster. Is there anything else I need to check?

Regards,
Brad
Hi Brad,

which version and build of Yellowfin are you using? And which version of Tomcat are you using? Also, just to be safe we should double-check the modifications made to the root.xml, server.xml & web.xml files, could you please email them to us (quoting the subject of this forum post)

regards,
Dave
Hi Dave,

Thanks for your help... as requested I have sent the required information to support.

Regards
Brad
Hi Dave,

Thanks for your help... as requested I have sent the required information to support.

Regards
Brad
Hi Brad,

thanks for the information and for sending the files, I can see that you're missing the [code][/code] tag after the 1st [code][/code] tag in the web.xml file (page 15 of the clustering guide from the above link).

That definitely needs to be added, hopefully that will do the trick, please let us know how it goes.

regards,
Dave
Hi David,

I have added the tag in both web.xml files restarted the services and then uploaded the license file and it has not replicated across the environments.

From reading the documentation it appears that this setting is related to session level replication rather than clustering?

Is there anything else we need to look at to enable clustering? Is it worth having a quick remote session on this?

Regards,
Brad
Hi Brad,

yes, for session replication you will definitely need to modify your server.xml file. Pardon me, because of our earlier discussion I thought you were only interested in inter-node message. There are 2 things you'll have to do to the server.xml file:

1) you will need to modify the node as specified in page 15 of the guide

2) and then there's an addition to the block as specified on page 16. Don't forget to change the value of cpListenAddress to that of your Yellowfin application server.

I hope this time it all works out, please let us know how it goes.

regards,
Dave
Hi David,

You are correct at this stage we are only interested in inter-node messaging for a clustered Yellowfin server environment. I do not wish to implement session level replication at this stage.

With this in mind are you able to advise on next steps to achieving Multicast Clustering Message (DYNAMIC mode)

Regards
Brad
Hi Brad,

I've seen the messaging not work because the IPv6 addresses were being used, in which case the solution was to enable IPv4 addresses by adding the following java startup option to the service properties (or to catalina.bat if you're manually starting up the app)

set JAVA_OPTS=%JAVA_OPTS% -Djava.net.preferIPv4Stack=true

When I start up my own clustered nodes I get the following output (I'm starting them manually via the startup.bat file - i.e. not via a windows service):


Forum image


see how my 2 nodes nepal and malaysia are listed? I think it would be worth checking this on your setup. I think you are running Yellowfin as a service, in which case the above output should be in a log called something like YELLOW.STDOUT.today's_date.log. However, if that's not the case then you could always shutdown the service and then manually start the app via appserverbinstartup.bat

please email us across the output.

regards,
Dave
Hi Dave,

I will try that today. Just a quick question: How does it know that the hosts are nepal and malaysia? Is this something that needs to be specified in one of the xml files or does it auto detect the nodes as part of the dynamic clustering?

Regards
Brad

Hi Brad,

yes the nodes are auto-detected as part of the dynamic clustering. If you were using the legacy clustering rather than the dynamic clustering method you would have had to list each node in the web.xml file.

regards,
Dave
Hi Dave,

I tried starting the services manually via the startup.bat file with the following change made to the catalina.bat

set JAVA_OPTS=%JAVA_OPTS% -Djava.net.preferIPv4Stack=true

I can see the logs as you described above however I only get one node in the cluster information where as in yours I can see two nodes.

Regards
Brad
Hi Brad,

I'm afraid I'm running out of ideas on why it's not working for you! If you'd like we could do a screenshare session and I'll rummage around and see if I get any ideas - just let me know and I'll send you a meeting invitation.

regards,
Dave
Any time today would be great... Thanks for the reply.

Do you have my contact details?
Hi Dave,

Thanks for your time today. I tried the settings as suggested in the dynamic mode without luck.
I have also tried the legacy mode with no luck either. Any ideas why that may not be working? Maybe if we can have another web session to ensure I have configured it correctly?


Regards
Brad
Hi Brad,

just confirming, does that mean you tried that multicast startup option?

[code]set JAVA_OPTS=%JAVA_OPTS% -Djgroups.udp.mcast_addr=228.0.0.5 -Djgroups.udp.mcast_port=47885[/code]

regards,
Dave
yeah tried that one too
Hi Brad,

we've found a good JGroups program for testing the basic inter-node messaging functionality, just download this jar file (please don't forget to remove the XXX file extension which was added to avoid download security issues) and then run it on all nodes that you want to test within your cluster, don't forget to add the startup option to enable IPv4:
[code]
C:>java -Djava.net.preferIPv4Stack=true -jar jgrouptest.jar
[/code]

and then you should be able to send messages from one node to another. Please let us know the results of the test, and of course if you have any issues with running the test please let us know.

regards,
David

Hi David,

Thanks for the app.
It appears as though the chat is not working between nodes so I am assuming that this is a network issue?

Regards
Brad
Hi Brad,

yes it does sound like it, and more than likely it will be caused by your network not currently supporting multi-cast network packets.

This is not supported in some environments... Amazon Webservices is an example of this.

regards,
David