Does Anyone Know How to Refresh Tomcat's Cache Without a Restart?
Hi all!
I am working on a script that we would use when we need a Banner outage. The script will basically redirect all SSB/INB links to an outage page and change the banner channels' audience in order to hide them. All is done and working in development! ...Except that the new channel audience rules do not get pushed until Tomcat is restarted. The whole point of the script is to avoid Luminis restart.
The change of the channel audience is done through modifying a couple of attributes in LDAP. I am not completely sure, but I think these get cached in Tomcat and some other process pushes the new audience rules when they change. So alternatively I might be looking for a way to trigger this process (if it exists at all).
If anyone knows and is willing to share any information on the subject I would highly appreciate it!
Thank you!
Vladimir Mollov

Caching
I don't think you have much of a choice here... I don't think your method will work, since altering the caching of Luminis is not only hard to do but I would say dangerous, from a reliability and performance standpoint. If you make it so that your changes are reflected in the channel immediately, that may mean that all channels will never cache any data and your portal comes grinding to a halt under load.
I think a better option for changing the link destinations is to have a redirection script (like your own local URL shortening service) and then use that for all of your links that will be changing over time.
Right...
Thank you for your response!
This is pretty much what I am doing for all SSB and INB links. The problem comes when I try to change the audience for the Banner channels. Do you mean changing all of the links within the banner channels? I am not really sure how to do that. I suppose I will have to alter the xml/xsl files for these channels...
I would be happy if I could even simply disable the channels somehow for the duration of the outage...
Any ideas are highly appreciated!
Audience
We have never tried to change the audience for a channel automatically, sorry. But I do know that when we change it through the UI, even then it takes some time to take effect, so you're still bound to run into caching issues doing that.
But why do you need to change the audience, if you can simply change where the links go? Then people can still see the channel, but when they click a link then they are taken to an explanation page instead of SSB.
Todd
I am not very familiar with
I am not very familiar with the programming logic of the Sungard provided Luminis Channels for Banner. I guess I will have to go through them and change the logic to check if an outage is in progress.
For the rest of the links (the ones outside of the Banner channels) I am doing exactly what you are suggesting - pointing them to a JSP page which determines whether to send them to Banner or to an outage page.
I know changing channel audience takes some time to go through, but when it is done through a JAVA program it does not happen until a restart.
Finding a way to get the Banner channels out of the way instead of changing the links inside them would have resulted in a more elegant and easy-to-implement solution which I was hoping to contribute to the LDN community. I suppose I will have to find a different way.
Thank you for your comments!
change ssb inb links
We use js to change all self-service and inb links. I added this to the top of /js/util.js
This particular list is what we do when we have copied our production servers to test instances and want to change all the links.
function replinks()
{
{
var links = document.getElementsByTagName("a");
for (i=0; i
linkHTML = links[i].innerHTML;
links[i].href = links[i].href.replace("banweb.pcc.edu%2Fprod","banweb.pcc.edu%2Ftest");
links[i].href = links[i].href.replace("banweb.pcc.edu/prod","banweb.pcc.edu%2Ftest");
links[i].href = links[i].href.replace("banweb.pcc.edu%2Fprod","banweb.pcc.edu%2Ftest");
links[i].href = links[i].href.replace("utf=http%3A%2F%2Fmy.pcc.edu%2Fcp%2Fip%2Flogin","utf=%2Fcp%2Fip%2Flogin");
links[i].innerHTML = linkHTML;
}
}
window.onload = replinks;