Spark - Recall/Delete a broadcast?

Hello all. Just a quick intro… New to Spark/OpenFire as of a week or two ago. I set up OpenFire to integrate with our Active Directory (more than 100 users) and installed Spark IM on multiple terminal servers. I have our AD users showing up in an “everyone” group for anyone who logs into Spark.

Right now users can only log in if I assist them (Spark doesn’t show up in the Start Menu and most people are unaware it’s installed). I started out by testing with about a dozen users, have them log on, message each other here and there, see how it affects performance on the terminal servers, etc. Wanted to test with some guinnea pigs before getting the entire company logged in.

So the problem is, one of those first 12 users sent out a broadcast to everyone (over 100 users), whether they’re online or offline and he gave them all a tip on how to change a default setting (the “idle” option) in Preferences. It was premature, without my permission and I don’t want users changing that setting. And now every time a user logs in for the first time, that broadcast is the first thing they see.

Is there any way to stop the message from other new users seeing it? A way to recall it from the user’s end, or retrieve and delete it from OpenFire?

I had no luck but maybe someone else will. Thanks in advance!

There is no option to recall a message. So i’m afraid the only option for you is by editing the database directly (while Openfire is stopped) and deleting those messages from offline messages table. Or by logging in with every user which should get that message (if you can change their password temporarily or get it somehow).

Perfect! I opened the database via Notepad and found exactly what you were talking about. If all I have to do is stop the service, delete the messages, save and restart the service then I can do that in under 5 minutes.

Do I just delete the lines that say “INSERT INTO OFOFFLINE VALUES…” ?

Or do I need to remove any of the lines before and after them?

Example: SET AUTOCOMMIT TRUE, SET AUTOCOMMIT FALSE, DELETE FROM OFID WHERE IDTYPE=19, etc.

I apologize if I sound like I don’t know what I’m doing… don’t have much experience working in databases. Just want to make sure I don’t break anything in the process of this.

Thanks for the quick response.

That i can’t say, as i i’m not a database guy either. Make a backup of your database file (after you stop Openfire) and try deleting only INSERTs. Then start Openfire and check.

Stopped the service, edited the Openfire.script file, removed all remnants of the broadcast (just the INSERT lines), saved, restarted the service. Worked flawlessly. Thanks again.

FYI…if this is going to be a production setup, I would recommend using an external database like MS SQL Express or MySQL.

Is there a straightforward how-to article for migrating my embedded db to SQL Express without having to reinstall or entirely reconfigure my OpenFire instance? I’ve heard it would provide better performance but what specifically does that mean?

I don’t know about performance, but it will provide a more stable environment, and will allow for things like clustering later on. It also makes it easier to work with if you ever need to edit the database directly. I’m not sure if there is a migration guide, but depending on the size of your deployment, it might just be easier to start from scratch.