first question why is that ?
because, when you start the server, lot table on sql is loaded, when you add a tournament on db, the tmap don't reload the sql table.
this is why you need to restart because tmap reload db only when you restart him, but whyy happy don't need ?
because happy send directly the informations to tmap server, when you do tournament via happy, happy will send infos to tmap and tmap will updates/Reload tournament tables... its difficult to explain, but if you want more infos, look to the handler/sender source of TMAP, TControl etc...