DOC-029: How to set up InfoSys# Kantar Media Spain 07/03/2013 INDEX 1 ABSTRACT ............................................................................................................................................. 5 1.1 PACKAGE CONTENTS ................................................................................................................... 5 1.2 SYSTEM REQUIREMENTS ............................................................................................................ 5 1.2.1 For hosting the application ..................................................................................................... 5 1.2.2 For generating the data .......................................................................................................... 5 2 WHAT IS INFOSYS#?.............................................................................................................................. 6 3 DATA GENERATION .............................................................................................................................. 7 4 3.1 CREATE A NEW INFOSYS+ USER .................................................................................................. 7 3.2 CREATE THE TEMPLATES ............................................................................................................. 7 3.3 EXPORTS AND BATCH ................................................................................................................ 13 INSTALLATION .................................................................................................................................... 14 4.1 WEB INTERFACE ........................................................................................................................ 14 4.2 SERVER ...................................................................................................................................... 15 4.3 BINDINGS .................................................................................................................................. 16 4.3.1 Server .................................................................................................................................... 16 4.3.2 Web Interface ....................................................................................................................... 16 5 AUTOMATIC PROCESS ........................................................................................................................ 18 6 OUTPUT EXPORTS REGENERATION .................................................................................................... 20 7 6.1 CREATE A PARALLEL UNOFFICIAL INFOSYS+ INSTALLATION ..................................................... 20 6.2 ALTER THE TEMPLATES ............................................................................................................. 20 6.3 ALTER THE DATERANGECFG.XML.............................................................................................. 20 6.4 DATE EVALUATION FEATURE .................................................................................................... 22 CUSTOMIZATION ................................................................................................................................ 23 7.1 CUSTOMIZING THE INTERFACE ................................................................................................. 23 7.1.1 Literals .................................................................................................................................. 23 7.1.2 Images .................................................................................................................................. 23 7.2 CUSTOMIZING THE TEMPLATES ................................................................................................ 24 8 7.3 CUSTOMIZING THE UNITS DECIMALS ....................................................................................... 24 7.4 EXAMPLE ................................................................................................................................... 25 MANAGING I# ..................................................................................................................................... 27 8.1 8.1.1 User Groups and Templates ................................................................................................. 27 8.1.2 Users ..................................................................................................................................... 28 8.2 9 MANAGE USERS ........................................................................................................................ 27 MANAGE ACCESS ...................................................................................................................... 28 NEW FEATURES WITHIN IWS_CONFIG.XML ....................................................................................... 29 9.1 Ranking (from v1.3.0.529_20130529)....................................................................................... 29 9.2 Duration (from v1.3.0.529_20130326) ..................................................................................... 29 9.3 Simple vs Complete Audience Curves (from v1.3.0.620_20130531) ........................................ 29 9.4 History unit (from v1.4.0.207)................................................................................................... 30 9.5 Persistent Connections (from v1.4.0.108) ................................................................................ 30 10 MONITORING I#.................................................................................................................................. 31 10.1 WEB SERVER.............................................................................................................................. 31 10.2 DATA SERVER ............................................................................................................................ 31 10.2.1 Alive.log ............................................................................................................................ 31 10.2.2 Activity.log ........................................................................................................................ 32 11 MOUNTING AN INFOSYS# TEST ENVIRONMENT ................................................................................ 33 12 TROUBLESHOOTING ........................................................................................................................... 34 12.1 INSTALLATION ........................................................................................................................... 34 12.1.1 Web Interface................................................................................................................... 34 12.1.2 iSharpServer ..................................................................................................................... 36 12.1.3 Bindings ............................................................................................................................ 37 12.2 CUSTOMIZATION ....................................................................................................................... 40 12.2.1 Interface customization ................................................................................................... 40 12.2.2 Templates customization ................................................................................................. 41 12.2.3 Units Decimals customization .......................................................................................... 41 12.3 DAILY USAGE ............................................................................................................................. 41 12.3.1 I# web page fails to load .................................................................................................. 41 12.3.2 Some templates fail to load ............................................................................................. 42 12.3.3 latencies between the request and the display of the output ......................................... 46 12.3.4 One last word ................................................................................................................... 47 13 HISTORY .............................................................................................................................................. 48 ANNEX A: HCB (HYPERCUBE) FORMAT ....................................................................................................... 49 A.1 INTRODUCTION ................................................................................................................................ 49 A.2 FORMAT ........................................................................................................................................... 49 A.3 EXAMPLE .......................................................................................................................................... 49 1 ABSTRACT This guide aims to explain how to create a new installation of InfoSys# based on an existing version of InfoSys+, as a step by step guide. It will also cover the most frequent issues and how to troubleshoot them. 1.1 PACKAGE CONTENTS The installer package you’ve received contains an InfoSys# folder containing the whole web interface and within it, a server folder containing the engine of the application, isharpserver.exe. You’ve also received a Tools folder and probably a Data folder too, containing the data produced by InfoSys Support Team to create your demo version of i#. The following documentation will describe their use and functions in details. 1.2 SYSTEM REQUIREMENTS 1.2.1 FOR HOSTING THE APPLICATION Windows Server with IIS installed and .NET Framework 4.0 (coming with InfoSys+ installer and client). 1.2.2 FOR GENERATING THE DATA InfoSys+ v1.9 or higher with PDF Creator installed (coming with InfoSys+ installer and client). OR Any application able to generate data in hcb and pdf format compatible with iSharp. Please contact InfoSys Support Team if you’re interested in using iSharp without InfoSys+ as data source. 2 WHAT IS INFOSYS#? InfoSys# is a web application that allows you to view and interact with several precalculated generic templates from any device connected to internet. It is composed of two main parts: a web server that attends to the requests that the user sends via the interactive interface, and a data server that provides the web server with the requested templates, based on the hypercube data it’s fed from InfoSys+ XML exports. server side Aggregated XML data daily batch client side WebService 3 DATA GENERATION Before setting up InfoSys# itself, we advise to create a user dedicated to I# operations into your InfoSys+ configuration. This user will serve to create the templates that are used in I# and to run the automatic batch that will generate the necessary exports. 3.1 CREATE A NEW INFOSYS+ USER Open the InfoSys+ configuration that will provide the data for your InfoSys# web app, logging in as sofres. Create a new user (i.e.: isharp) with simple user privileges and check that Calculation option Export to XML is set to Yes for the Country, Client and User groups restrictions defining this user, as shown below: 3.2 CREATE THE TEMPLATES If you plan to use the provided templates, you can skip this section. Please note, for an overview of the templates outputs in InfoSys#, please check their details in the companion iSharp User Manual.pdf. We’ll create all following templates with said user, strictly using the naming convention described below. The units default to Rtg%, Rtg(000) and Share, unless specified otherwise. All templates must only use Last Day as date ingredient unless specified otherwise. The templates names follow this general structure: CAL(C).REG.ist, where CAL(C) are the first 3 (or 4) letters of the type of calculation in the template and REG are the first 3 letters of the region prefix, all in CAPs. All templates with a name in CAL(C).* must be generated as one per region, using the prefix of the region, i.e.: Summaries of Turkey and Istanbul are : SUM.TUR.ist and SUM.IST.ist, the ones in CAL(C).XXX are generated only once, using the identifier of the main region, i.e.: UNIV.TUR.ist. SUM.*: Summary = Periods report that contains all targets, channels, timebands and units: ACC.*: Accumulated = Periods report that contains all channels and units. We strongly recommend keeping only the main individuals target and the whole day timeband as this can become a costly calculation. We choose 3 different dates in the Dates ingredient in this order: Last Day, Month to Date and Year to Date: MIN.*: Minute by minute = Periods report that contains all channels and units, but only the main target. Only Total Day timeband is selected and is divided by minutes: CUR.*: Curves = Audience curve report that contains all channels. Main units are present and we add AvRch(000) too. SCUR.*: Simple Curves = Same as CUR, but only the main channels are selected (chosen at your discretion, but we recommend a maximum of 8 curves). SCUR is the first audience curve that opens in i#, and clicking on the Simple/Detail button allows you to switch between SCUR and CUR display. PRG.*: Programs = Programs report that contains all targets and channels. Main units are present and we add AvRch(000) too. We activate the following mandatory attributes in the output: Title (or Title/Description), Channel, Start Time and Duration. We also advise to filter Programs by Program type if available in your configuration or by duration if not, to avoid overcrowding the output with too short, irrelevant, events: PRH.*: Programs History= same template as Programs report, but only with the main channel. Last day is replaced by the last 28 days (the duration is at your discretion) and we strongly recommend a duration filter of minimum 15 minutes. Attribute Date must be added to the output. This report allows you to comparatively study the performance of a program over the repetitions during the selected range (typically last 28 days). SPT.*: Spots = Spots report that contains all targets and channels. Only GRP and Cont(000) units are used. We activate the following mandatory attributes in the output: Campaign, Brand, Channel, Start Time and Duration: UNIV.XXX: Universe = Periods report that contains all targets and timebands. Only Main region, Total TV channel and Universe and Sample units are selected: CHN.XXX: Channels = Periods report that contains all targets, regions, channels, timebands and units: 3.3 EXPORTS AND BATCH Once those templates have been created, we’ll need to have them exported, renamed, and moved to the data folder that will keep all XML exports. You can keep this folder wherever you like, as long as the host machine is always accessible from the iSharpServer.exe (see section 4.2) and the InfoSys+ host during the batch process, and it needs quite a big storage space (depending on your I+ configuration, the data for a single day can take from 1MB up to several hundreds of MB!!!) All templates must be exported as XML, and will automatically be generated with the extension .hcb (as they contain the hypercube information). The CUR.* templates are the unique exception as they must be exported as PDF (depending on your bandwidth, we recommend using High compression). Those exports will then need to be renamed one by one, by including in their name the date in YYYYMMDD format. I.e.: Main Turkish summary export of 07/07/12 will have to be renamed: SUM.TUR.20120707.hcb. The same rule applies for the PDF exports. The hcb exports will then need to be moved to the data folder, where they’ll be stored in a subfolder named as the date in use YYYYMMDD, within the month in use YYYYMM, within the year in use YYYY. Following our previous example: \data_folder\2012\201207\20120707\SUM.TUR.20120707.hcb. The pdf exports will instead be moved to the web server directly in a folder named Curves (this default setting can be customized should you want the PDFs stored in another place, see 4.3.1). I.e.:\\webserver\Curves\CUR.TUR.20120707.pdf To automate this process, we’ll use an InfoSys+ batch to proceed to those exports every day and a MSDOS command line batch .bat to execute the rest of the necessary tasks (detailed in chapter 5). So first of all, let’s create a batch in InfoSys+, called web.ibt, that will execute al the templates and export them to .hcb or .pdf accordingly, like this: After we made sure the batch is working correctly, we can close InfoSys+ as we won’t need it for the rest of the steps. 4 4.1 INSTALLATION WEB INTERFACE Step 1: We need a web server at our disposition to make our web application. Any always on-line PC can do the trick, as long as IIS service is running on it, along with IIS manager. If you don’t have IIS service installed and don’t know how to do so, please check this page (http://www.iis.net/learn/install) or ask your IT department. Step 2: When IIS is installed on the web server, the first thing we’ll do is to create a folder in the following path: \\webserver\inetpub\wwwroot\, which we’ll name as we want, let’s say iSharp for our example. We’ll copy the whole content of the InfoSys# packet in this folder: Step 3: Let’s now run IIS manager and create a new website by right-clicking in the left hand column on Sites, and choose New web site… The dialog pops up and you’ll need to fill it up with appropriate data (see screenshot on next page): - For the site name, feel free to use whatever name you want. - In physical path, you must point to the folder we created in step 2. - You can modify the Bindings if it is purposeful to you, but we advise not to edit anything, except the application Port. The selected port will be the TCP one that will be used by your users to connect to the interface, so it must be opened for inbound and outbound traffic at all times in your firewall. If your server will be entirely dedicated to I#, we recommend you to use the reserved http port 80. - Finally, in the host name part, you’ll have to enter one of your registered domains’ name or the network name of your server (if you don’t plan to access the application from outside your network or if you use a redirection) 4.2 SERVER The server folder that came within the InfoSys# packet can be installed wherever you want: though we recommend keeping it in the web server structure, as provided in InfoSys# folder, it can be installed on another machine. Just keep in mind that the hosting PC will have to be always online, accessible from the web server and the machine that hosts the I+ in use during the batch process, and with iSharpServer.exe running in foreground (it can be minimized, but not closed). 4.3 BINDINGS Last but not least, we’ll finish the installation process by binding the different pieces that form InfoSys#: the data server, the web interface and the storage folders: data, images and curves. There are three files where you can configure different paths of the application, we’ll review which files in both servers are here relevant. You also can configure the TCP port used for internal communication between the web interface and i# server (this port must be different than the one defined in section 4.1 to access the web server). By default, we set it to 8080 as it is generally opened in all networks, but you may want to change it for several reasons. The process to do so is explained below. Please make sure, in case you edit it, to allow the new port in your firewall for inbound and outbound traffic. 4.3.1 SERVER Only one file is important here: iws_config.xml, its first string defines the port used by I# for internal communication with the web server. If you want to edit it, this is the first place where you have to change the port number (its counterpart within the web server is the IWS.asmx as explained below). The second important string in the iws_config.xml is the Data path definition: this is where you’ll specify to I# the path to find the stored data (see data_folder in section 3.3). This folder may be in the web server, data server or any other place you’ll find suitable. At the end of the string, you can also specify where the Curves PDFs are stored (CUR and SCUR PDF outputs). <?xml version="1.0" encoding="utf-8" ?> <Config> <Server desc="Country" port="####"/> ... <Data path="Data_Path\Of_Your\Convenience"… curves_url="/curves/" /> ... </Config> Example from the Turkish configuration: <?xml version="1.0" encoding="utf-8" ?> <Config> <Server desc="Turkey" port="8028"/> ... <Data path="D:\iSharpData\Turkey"… /> ... </Config> 4.3.2 WEB INTERFACE The first file we find in the web server is the config.js. It allows you to define 3 variables that are used in the application: var sRootImg = "Common_prefix/path_for/the_images"; var urlWebService = "URL/IWS.asmx"; var idLanguage = "####"; .sRootImg: this value will complete the one defined in the string img=”” within iws_config.xml images section (see 7.1.2). .urlWebService: the URL of the web application followed by /IWS.asmx .idLanguage: the language used in the application, identified by its code from the iws_config.xml Example from the Turkish configuration: var sRootImg = "/Turkey"; var urlWebService = "http://iws2.kantarmedia.es/Turkey/IWS.asmx"; var idLanguage = "1033"; As mentioned in the iws_config.XML edit description, the second location where the port used for internal communication must match the one defined in the XML is within the IWS.asmx, precisely in the string: protected const int nServerPort = ####. You’ll also have to define the i# server location in its string: protected const string sServerAddr = "data/server/path"; Again from the Turkish configuration: <%@ WebService language="C#" class="IWS" %> ... [WebService(Namespace="http://localhost/InfosysWebServices/")] public class IWS : WebService { protected const string sServerAddr = "localhost"; protected const int nServerPort = 8028; ... 5 AUTOMATIC PROCESS We now have to configure the command line batch. It’s up to our client to modify it at will of course, but we provide already a simple, working one in the Tools folder, called WEB.BAT. It needs manual editing before starting to use it in your configuration, as explained below. This batch is designed to be manually run from a command line specifying as attributes the day DD, month MM and year YY. The CLI to call this batch would appear like this: X:\WEB DD MM YY, and the batch is edited as follow, the strings in italic bold need to be edited manually according to your configuration: del /q "Infosys+_Installation_folder\export\username\*.*" Infosys+_Installation_folder\Infosys.exe /USER username /TEMPLATE Infosys+_Installation_folder\Batch\username\web.ibt md “data_folder\20%3” md “data_folder\20%3\20%3%2” md “data_folder\20%3\20%3%2\20%3%2%1” copy "Infosys+_Installation_folder\export\username\*.hcb" “data_folder\20%3\20%3%2\20%3%2%1\*.20%3%2%1.hcb" copy "Infosys+_Installation_folder\export\username\*.pdf" "\\webserver\Curves\*.20%3%2%1.pdf" del /q "Infosys+_Installation_folder\export\username\*.*" Let’s analyze this code line per line: del /q "Infosys+_Installation_folder\export\username\*.*" This line cleans up I+ user’s export folder to make sure it will generate the HCBs and PDFs of only relevant data. Infosys+_Installation_folder\Infosys.exe /USER username /TEMPLATE Infosys+_Installation_folder\Batch\username\web.ibt this first line simply launches InfoSys+ in automatic mode to execute the web.ibt batch defined in section 3.3. md “data_folder\20%3” this will create the year folder, if not present yet, on the server hosting the rd data, corresponding to the 3 parameter entered when calling WEB.BAT by CLI. md “data_folder\20%3\20%3%2” this will create the month folder, if not present yet, on the server nd hosting the data, corresponding to the 2 parameter entered when calling WEB.BAT by CLI. md “data_folder\20%3\20%3%2\20%3%2%1” this will create the day folder on the server hosting st the data, corresponding to the 1 parameter entered when calling WEB.BAT by CLI. copy "Infosys+_Installation_folder\export\username\*.hcb" "data_folder\20%3\20%3%2\20%3%2%1\*.20%3%2%1.hcb" this line copies and rename all .hcb from I+ user’s export folder to the folder created by the precedent line. copy "Infosys+_Installation_folder\export\username\*.pdf" "\\webserver\Curves\*.20%3%2%1.pdf" this line copies and rename all .pdf from I+ user’s export folder to the Curves folder created beforehand on the web server (or wherever you chose in 4.3.1). del /q "Infosys+_Installation_folder\export\username\*.*" finally, this new iterance of the same line cleans up I+ user’s export folder. The following is a live example of WEB.BAT execution on the 07/07/12 for Turkish configuration: When you’ve finished this process, please login into I# as an admin user to verify that the data has been correctly loaded (more details regarding this process in the admin user description in 8.1.2). Once verified, please manually edit dates.cfg in the web server to reflect the latest batch dates (WARNING: if you use a MM DD YYYY locale on the server, use DATES:MM/DD/YY MM/DD/YY in dates.cfg): 6 OUTPUT EXPORTS REGENERATION You may need to regenerate the output exports for certain dates typically after a data reload or a customization. As all templates point to Last Day, you have three possibilities to regenerate the data of a specific day: 6.1 CREATE A PARALLEL UNOFFICIAL INFOSYS+ INSTALLATION Should you regularly need to regenerate the output exports, the easiest solution is to install a parallel I+ installation, pointing to your regular data folders. You’ll need to create your I# dedicated user in that configuration too, then copy the templates and batch, and of course, edit the templates to calculate the desired date. Finally, you’ll need to edit the WEB.BAT to point towards this version of I+ instead of your regular one. 6.2 ALTER THE TEMPLATES If, for any reason, the previous solution is not feasible for you, but you still need a permanent solution for regular data reload, the heaviest solution would be to generate a new set of templates, copying the existing one but changing the dates within them to point to the desired date. You’d need to edit them manually, then rename them by changing the region suffix (Calculation type prefix can’t be changed). After that, you would need to create a new batch in InfoSys+ pointing towards those new templates and edit your DOS CLI batch to execute this new batch instead of the usual one. This means a lot of hassle but it is an alternative solution if you reload your data at specific dates and you can manage to translate this in a logical date. So this solution is reserved only if you plan to reuse several times those alternative templates. 6.3 ALTER THE DATERANGECFG.XML This is by far the simplest way to proceed to an isolated regeneration of output exports. Should you need to reload some dates and you won’t do that periodically or with a logical scheduling scheme, you can fool InfoSys+ into believing that the last day is the day you need to regenerate the exports for. To do, you just need to edit the DateRangeCfg.xml in the Config folder of your I+ installation. There are three strings respectively for Audience, Programs and Spots with dates in YYYYMMDD format: th If I want to regenerate let’s say the data from the 28 of February 2013, I just need to change the “to” date as follow: Once this edit is saved, I simply launch my WEB.BAT using the specific day parameter, here: WEB 28 02 13, and it executes as if it was the last day, regenerating the exports I needed: If you need to reload several dates, just keep changing the DateRangeCfg.XML and running the WEB.BAT with according parameters until you’ve regenerated all the exports you needed. WARNING: When you’ve finished with this operation, please don’t forget to set the dates’ ranges to their original state in order not to create calculation errors in InfoSys+: 6.4 DATE EVALUATION FEATURE From InfoSys+ v2.1, there’s a new feature in the batch options called date evaluation. This allows to manually selecting the last day of the available date range during the time of the batch execution. It does the same trick than explained in section 6.3, without the need to change the DateRangeCfg.XML: The downside of this method, apart that it’s only available from v2.1, is that you can only modify manually the evaluation date from within the batch options, so that means that you can’t use the WEB.BAT, unless you modify it by deleting the first line, so not to launch the web.ibt. Doing so, you would execute the batch manually, keeping I+ window open, then the modified WEB.BAT with the matching date as parameters, then change the date evaluation in I+ before launching the WEB.BAT for the second day… until you’ve reloaded all wanted dates. Don’t forget to change back your WEB.BAT later on to have it launch web.ibt for your next normal data load. The strong advantage of this method though is that the date range is not affected, because you won’t fiddle with the DateRangeCfg.XML, so it doesn’t affect your production. 7 CUSTOMIZATION You can customize different aspects of InfoSys#, namely the interface and the data templates. You may also want to change the paths and the communication port between data and web servers in the future. To do so, refer to section 4.3. 7.1 CUSTOMIZING THE INTERFACE 7.1.1 LITERALS InfoSys# comes with a very practical tool called dictionary.XML that allows you to edit nearly any literal you can see in the application. It will simply act as a sticker tool that will paste your translation over the already present literal. You’ll find this dictionary.XML at the root of data server, where lies iSharpServer.exe. The strings it contains are constructed like this: <?xml version="1.0" encoding="utf-8" ?> <Dictionary> <Str src="QWERTY" lang_1="QWERTZ" Lang_2="AZERTY" … Lang_n="…" /> </Dictionary> I.e. following our Turkish example: <?xml version="1.0" encoding="utf-8" ?> <Dictionary> <Str src="Start time" eng="Start" tur=" Başlangıç saati" /> </Dictionary> The source (src) literal is straightforwardly the literal as you see it in the application. If you want to change it, just edit the corresponding dictionary string in the language you use in I# (defined in the config.js). If not yet present in the XML, just add an entry following the described rules. 7.1.2 IMAGES You may want in the future to change a channel logo; you can easily do so by replacing the former one in the images folder (defined in the config.js). Please remember that channels logos must be square shaped between 100*100 and 200*200 pixels on a white background. If you want to add a new logo or rename an existing one, please do so in the images folder, and then edit the iws_config.XML accordingly, specifying the channel translation (name of the station to link it to its programs) and the corresponding image as follow: <Translations> <Item id="I+_channel_code" base="Name"/> </Translations> <Images> <Dimension id="102" desc="channels"> <Item id=" I+_channel_code " img="/img/Name.jpg" color="FFFFFF"/> </Dimension> </Images> As mentioned in the explanation of config.js (4.3.2), the img string part described here, will be the suffix of the path until the image itself, so following up with the generic structure example, the complete path to the image is the Prefix from config.js + the suffix from iws_config.xml, or Common_prefix/path_for/the_images/img/Name.jpg. Example from Turkish configuration: <Translations> <Item id="1:11" base="ATV"/> </Translations> <Images> <Dimension id="102" desc="channels"> <Item id="1:11" img="/img/atv.jpg" color="0000FF"/> </Dimension> </Images> The complete image path will therefore be in our example: /Turkey/img/atv.jpg. Please note the color html code. This has no importance per now, but in a near future the code will allow you to associate the color with a channel, used for the columns background and stats filling. 7.2 CUSTOMIZING THE TEMPLATES Before any change in the templates, please keep a backup copy of the original ones that we provided you with the installation files. You can edit the templates as suit you best for them to reflect the ingredients you’d need. It’s up to you. Please remember to keep at least the required elements of each template as described in point 3.2. When you add an ingredient to a template, that wasn’t present in I# yet, you have to manually populate the iws_config.XML accordingly in the relevant section. After any change in the iws_config.XML, you need to stop and restart the isharpserver.exe to reset the data service and take the changes into account. Remember that if you add an ingredient and want it available for past dates, you have to manually launch the batch for each desired date, as explained in chapter 6. Finally, don’t forget that the ingredients are displayed in the outputs in the same order that they’ve been added to the template, which means that any later added ingredient will default as the last listed one. Should you want to change this order, please drag and drop the ingredients in the Options column of I+ until you get the desired display. 7.3 CUSTOMIZING THE UNITS DECIMALS You may want to change the number of displayed decimals for your units. To do so, you must first make the changes in the I+ templates themselves, as explained in the previous chapter. The same restrictions and recommendations apply here too. Once this is done, and your templates have been recalculated, you’ll have to edit the iws_config.xml in the data server to reflect the change of displayed decimals, in the units’ part: Please note that I+ and I# numbers don’t have to be equal, you can actually calculate I+ templates with more decimals than you’re going to display in I# to allow for more flexibility afterwards, should you decide to increment the number of displayed decimals, without having to rerun all the templates. 7.4 EXAMPLE As a summary example, I will add a new channel, TRT1, to the Turkish configuration. Actual state: First of all, I’ve edited all templates, except UNIV.TUR.ist to add TRT1 in the list of calculated channels. rd As it’s the latest added channel, it goes at the end of the list, but I wanted it in 3 position, so I changed the order in the template by a simple drag and drop. I repeated this change in all templates: I then launched the batch for all desired dates and got my new exports showing the new channel. Then I needed to edit the iws_config.xml to implement the new channel in I#, with its image. To do so, I opened one of the newly generated xml exports (extension .hcb), containing the new channel to find its Infosys+ code: The channel code is 1:27, so I now could edit the iws_config.xml with relevant data (beware, XMLs are case sensitive), respecting the string convention that already defines the other channels: As you can see, I edited both the Translations and Images fields (images have already been explained in 7.2.2). And that’s it; the channel has now been implemented as you can see in the screenshot below: 8 8.1 MANAGING I# MANAGE USERS InfoSys# comes by default with three created users and two groups. You will probably want to change this from the start. There’s a file within the data server called users.xml that you’ll need to edit in order to manage the users credentials and access level. A word of advice, please respect the exact structure of the xml, being extra cautious with upper and lower case as XMLs are case-sensitive and not at all fault-tolerant. Also, beware not to enter twice the same id or name for different users or groups, which would cause I# authentication to simply not work for all users! Please note that you don’t need to reset the isharpserver.exe when you edit the users.xml, as the file is automatically scanned every 15 seconds for InfoSys# to acknowledge the changes seamlessly. 8.1.1 USER GROUPS AND TEMPLATES You may modify the groups in order to restrict what templates are available to their users. If so, please give the new group a proper id and name, different from the existing ones, and specify the templates accessible to this group’s users. You’ll find a list below of the available templates and their associated code. Please not that some templates have two codes: one starting by 1000 to be displayed in PCs web browsers, and the other starting by 2000 for handheld devices display. If a template has only one type of code, it means that the same output is used for PC and device. Summary: 1001, 2006 Regions: 1003 Programs: 1006, 2002 Spots: 1007, 2009 Curves: 1008, 2008 Channels: 2001 Programs Profile: 2003 Channels Profile: 2004 History: 2005 Programs Minutes by Minutes: 2010 Programs History: 2011 Ranking: 2012 You can easily define the templates accessible by group by editing templates in the group string with a list of coma-separated template codes, or the keyword “all”. 8.1.2 USERS The three users created beforehand are admin, demo and test; representing a mix of the user types. We’ll analyze their specificities in order to explain the different options available for users’ creation. They all use the default language of the application, and this can also be modified if another language is available. . admin user is password protected (default: admin123), belongs to Standard group 100 and is defined by the hardcoded admin setting. Password protection is simply enabled by giving a password value into the user string. The Standard group is defined by allowing access to all templates. The admin value set to 1 provides to this user the possibility to view all possible dates until yesterday, even if data server’s dates.cfg is not updated till that date. This feature allows the admin user to verify that the last data has indeed be loaded correctly, before editing the dates.cfg, which range defines the available dates for non admin users. .demo user: like the admin is part of Standard group 100; unlike the admin is not password protected and is defined by the hardcoded demo setting (demo=1): this setting simply restricts the available dates for this user, while allowing him to view all templates like a regular admin. The dates range is defined in the iws_config.XML by min_demo and max_demo values: Please note that the min/max date range (between Data path and demo range) is a default range, set when we send the installation packages, and is de facto overwritten by the dates.cfg data server file. .test user is not password protected, not defined by admin nor demo hardcoded settings and belongs to Restricted group 102. It’s a typical restricted user, as he only gets access to certain templates defined by its group and, unlike the admin, can only see the templates of the dates comprised in the dates.cfg. 8.2 MANAGE ACCESS If you have a static device, like a server with a fixed IP, that needs to access regularly I#, you may want to bypass the authentication on I# login page. This could be really useful if you plan to have other services hosted on servers you want to allow automatic access to I#. In order to do so, we’ve developed a XML switch in the iws_config.xml, called TrustedClients. To activate it, you just need to enter a string containing the IP and the description of the server in the trusted clients section, following this nomenclature: <Client ip = “XXX.XXX.XXX.XXX” comment =”YYY” />: 9 NEW FEATURES WITHIN IWS_CONFIG.XML This section will grow over time and reports the various additions to the iws_config.xml server file, with instructions on how to set the new nodes up and their effect on InfoSys#. The version of the isharpserver.exe from which the feature is implemented is specified in the section title. Please note that some of these nodes require some updated files in the background. Should you implement them and not obtain the desired effect on InfoSys#, then your version is surely outdated. If such is the case, please liaise with InfoSys Support Team to receive an upgrade. 9.1 RANKING (FROM V1.3.0.529_20130529) When template 2012 Ranking is enabled, the following nodes allow you to define the maximum number of programs in the Ranking report as well the unit that will be used to extract said programs. Here’s an example: <Reports max_ranking_items = "50" static_ranking_unit = "1:1003" /> max_ranking_items is quite self-explanatory but the other node is a little harder to grab. static_ranking_unit actually defines the unit that is used by InfoSys# to extract the 50 max ranking items from the PRG output. That means here that the 50 max ranking programs will be the 50 ones with the highest Share performance, and changing unit inside the InfoSys# interface will only reorder those 50 items according to their performance in the studied unit. 9.2 DURATION (FROM V1.3.0.529_20130326) The following group of three XML nodes allows defining the minimum duration of a program to appear in the simple or detailed view of the programs output, and in the ranking: <Reports min_duration_prg_simple = "0001:00" min_duration_prg_detail = "0001:00" min_duration_prg_ranking = "0001:00" /> Those nodes are defined in mmmm:ss. 9.3 SIMPLE VS COMPLETE AUDIENCE CURVES (FROM V1.3.0.620_20130531) This node, when set to 1, allows the use of both SCUR and CUR templates to display audience curves of respectively the main channels or of all channels. If set to 0, only CUR will be displayed and the button to switch from one to another is not displayed in InfoSys# <Reports use_curve_alt = "1" /> 9.4 HISTORY UNIT (FROM V1.4.0.207) This node allows defining which unit will be displayed for the History output: <Reports history_unit="1:1004" /> 9.5 PERSISTENT CONNECTIONS (FROM V1.4.0.108) These new parameters that can be added in the server node allow establishing an inactivity timeout that kicks the idle user out after the specified number of seconds without activity. The two parameters are persistent_conns="" and timeout_conns="". The first one, persistent_conns, must be set to 1 to enable this new feature, and defaults to 0 (persistent connections disabled) when the parameter is not specified. The second one, timeout_conns, allows specifying the number of seconds of inactivity after which the persistent connection will be erased from the installation, forcing the user to login again when resuming InfoSys# activity. The default length is 600 seconds, or 10 minutes. Those parameters have to be set in the server node, first line of the XML file, just besides the server description and port: <Config> <Server desc="Spain" port="8020" persistent_conns="1" timeout_conns="600"/> When those parameters are defined in the node, and a user has successfully login into InfoSys#, the established connection is saved in a Conn folder, automatically generated in the folder that contains the isharpserver.exe. The connection is updated after each request, resetting the inactivity timeout, and disappears if the counter reaches the timeout_conns threshold, obliging thus the user to identify again when sending a later request. The expiration of the connection is checked every minute. Please note that the connections are saved even in a case of a server reset. 10 MONITORING I# Once again, we can split the monitoring tools between the web and data servers. 10.1 WEB SERVER In order to make sure that the web server is alive and working, we can call the IWS.asmx simply by entering in our browser search bar the URL we already defined in the config.js (see 4.3.2) as urlWebService value: This will open a new window that offers 3 links to different functions that we’ll analyze further in the troubleshooting section (chapter 11): For the moment, our goal is reached: if we’ve reached that window, that means that the web server part is indeed up and running. 10.2 DATA SERVER 10.2.1 ALIVE.LOG There are two main monitoring tools that allow you to monitor the data server: the alive.log and the Activity.log that both lie in the same folder than iSharpServer.exe (data server service). The alive.log is a very basic .txt file that allows for remote monitoring. While the iSharpServer.exe is up and running, the alive.log is implemented every three minutes with a new line with the date and timestamp. This will automatically change the Date modified attribute of the file, which allows for working with remote monitoring tools that use that info. And thanks to the static nature of the log, you can keep track of when the service has failed, should this unlikely event happened. The following screenshot shows an alive.log from an up and running service: 10.2.2 ACTIVITY.LOG The Activity.log is a text file that keeps track of all the events that affected the data server: the requests from the web server, the starts and exits of the server, the available dates, the errors... Everything is there and it is generally where we’ll find the root problem while troubleshooting. You can access it via any txt editor of course, but you can also check it from the iSharpServer.exe itself, through the Log tab (click Refresh if no content is displayed yet), you can even search the logs using CTRL+F. The other tabs will be explained in the troubleshooting section (chapter 11): As the Activity.log can sum up to a heavy file, quite fast depending on the activity of InfoSys#, we recommend you to regularly backup the file manually or automatically in order to free the log space, as it may otherwise create latencies (see 12.3.3) Finally the cache tab can provide you some details regarding the connections, with useful error counters. 11 MOUNTING AN INFOSYS# TEST ENVIRONMENT For testing purposes, you may want to mount a parallel test platform that uses the same data. To do so, you’ll just need to create a new website, or to use a subfolder in your current website. The process of installation is very similar to the one detailed in chapter 4, so, when in doubt, don’t hesitate to refer back to this chapter. In the subfolder or new web site folder, you’ll need to copy once again all contents of the web server package. Then you’ll also need to copy the contents of the data server package in another destination than the one you use in your regular I# installation. You can define the data, img and curves paths to point to the same folders you already use or to other ones, depending on your testing purposes. Where the two installations need to really differ is in the ports that will be used. If you defined a new website, you must use another port than the one you’re using to access your regular I# installation. If you chose instead to work with a subfolder, don’t forget to add the subfolder suffix in the URLs that you’ll define in the config.js (4.3.2) and that you’ll use to access the website itself. The second port, the one used internally for communications between web and data servers, must also be different than the one you use for your regular I# installation. Don’t forget to configure it properly in the iws_config.xml (4.3.1) and IWS.asmx (4.3.2) and to open it for inbound and outbound traffic on your network. 12 TROUBLESHOOTING We’ll try to summarize here the most regular issues we’ve faced when installing, configuring and using I# on a daily basis, and their solutions. 12.1 INSTALLATION If you’ve thoroughly followed the installation instructions detailed in chapter 4, you shouldn’t face any specific problem. However, should your InfoSys# not work after the complete installation, we’ll revise the possible issues in each step in the same order than chapter 4: 12.1.1 WEB INTERFACE . Step 1: Launch the URL of InfoSys# as you defined it in the web site creation (section 4.1). If you reach the login screen, skip to the next step: - If you don’t reach the login screen, make sure that you use the right URL, with the right port (the one you defined during the web site creation). - If it still doesn’t work after you corrected it, please try to connect to IWS.asmx (see Step 3 below on how to do so). If you indeed reach the IWS page, then please empty the web server folder and paste again the whole content of the provided web server package. If it keeps failing nonetheless after this operation, please contact your InfoSys support team. - If you can’t see the login nor the IWS pages, please check with your IT department. - If, after you successfully arrived on the login page, you enter your credentials but nothing happens, you stay at the login page whatever the credentials combination you try, follow to Step 2. - If you get the following error message at login, skip to Data Server section: . Step 2: We have to verify whether the web service is running properly. As explained in section 9.1, to do so, we’ll call the I# URL followed by /IWS.asmx. If we reach the IWS window, we can pass to the next step: If you don’t see this window when you call for the URL/IWS.asmx, check the following possible reasons: - Verify that IWS.asmx is indeed installed in your web server folder (it is a file contained in the web server package, see section 4.1) - If so, please verify that the urlWebService variable is correctly configured with URL/IWS.asmx in config.js (4.3.2) - If the cause is not in those first two checks, please verify that the port you’re using to access the web service is indeed open on your firewall and available in your network - Should those 3 possibilities be unsuccessful in explaining the issue, please refer to your IT department to have them help you set up the website. . Step 3: The web service is up and running, but we need to make sure that it can connect to the data server. To do so, we’ll use the third link on IWS homepage, UserLogin. We’ll fill up name and password values, using the credentials of a user defined in users.xml (see section 8.1 for more details). The idApp must be filled with be 1000 or 2000, indifferently. Finally, the idLang is the language code defined in the iws_config.xml (1033 stands for English) - The following screenshot is the one we’re hoping for (with idUser and idSession that can of course be different). If we get this message, communication between web and data services is correctly established and we can skip to the next section: - Here are some typical error messages that can come instead of the valid session message and their possible cause and solution: . The server is down: Please verify that the Data server is indeed up and running. If not, simply launch isharpserver.exe and your problem is solved. If it is already running when you get the error, please make sure that the internal communication port is indeed configured properly in web server’s IWS.asmx and matches exactly data server’s iws_config.xml If the isharpserver.exe is already running and the port is correctly configured, this is a communication issue: make sure the internal communication port is not blocked by your firewall and that indeed web and data servers can communicate from one to another on your network. If not, please check this with your network admin. . Wrong credentials: Please make sure you use login and passwords as they’re entered in the case sensitive users.xml. . Insufficient privileges: Make sure you used 1000 or 2000 as idApp. 12.1.2 ISHARPSERVER . Step 1: If you get to the login page and the tests described in previous section with the IWS.asmx are successful, but, despite entering correct credentials, InfoSys# stays blocked at the login page, it may be due to an issue in the web.config file that comes with the web interface package. Most recent installation packages have this issue fixed, but you may face the issue with previous installer packages on certain OS like Windows 7. First of all, make sure that you have indeed the web.config file in the web interface folder, if not please copy the following XML code in an empty file, that you’ll rename web.config. If the file is indeed present in the web interface folder, but the issue remains, make sure its content does match the XML content below. If you’re not sure about this process, please don’t hesitate to contact the InfoSys Support Team and we’ll provide you with the correct file. Web.config: <?xml version="1.0" encoding="UTF-8"?> <configuration> <system.web> <webServices> <protocols> <add name="HttpGet"/> <add name="HttpPost"/> </protocols> </webServices> </system.web> <system.webServer> <defaultDocument> <files> <add value="isharp.html" /> </files> </defaultDocument> </system.webServer> </configuration> . Step 2: If you get the following error after a login attempt: The isharpserver.exe service is down. Please launch it from the data server. . Step 3: If the service is running but you don’t see the data you’re expecting, please verify the activity log from within the isharpserver.exe visor (see 9.2.2). There are too many error possibilities to report here, so if the message you get is not clear to you or you don’t know how to solve the issue, please contact your InfoSys# support team. You can also check the config tab of the isharpserver.exe to confirm it corresponds to the information you’ve configured in the iws_config.xml. If not, make sure you edited the right xml, not a backup copy… Once you get the connection up and running between data and web servers, you’re done with the installation part, and you now must see the summary page. If it’s not the case, after having followed each step of those first two sections, please contact your InfoSys# support team. 12.1.3 BINDINGS Several possibilities can happen now: A) Best case scenario, you get the summary view correctly, as well as the other screens, with all the info you want already displayed, then you’re good: the installation has been successful: B) The selected date is not available: . Step 1: Should the locale of your Windows server use the American style of date format MM DD YYYY, instead of the DD MM YYYY, you should modify dates.cfg file accordingly in DATES:MM/DD/YY MM/DD/YY. . Step 2: check the date range specified in dates.cfg and make sure you have the template exports corresponding to the dates you want to see. Make sure I# indeed intents to display the right date using the parameters button and select the appropriate date as shown below: . Step 3: If the date in I# matches the dates.cfg range, make sure that you indeed have the HCBs corresponding to said date loaded in your data folder. If not, run the batch for said date and refresh I# homepage and you’re out of trouble. . Step 4: Should the date’s HCBs being properly loaded in the folder but I# is still failing to display it with the same “Selected date is not available” error message, the problem is most certainly with the data folder: - Verify at first that the data in the data folder is organized in a subfolder structure strictly respecting the convention detailed in section 3.3: YYYY\YYYYMM\YYYYMMDD\CAL.REG.YYYYMMDD.hcb. - If you made sure the structure is correct, but I# is still failing, please verify that the data folder is correctly configured in data server’s iws_config.xml. - After all these checks, if you still got the same error message, contact your I# support team. C) Issue with the images: . Some channels logos are not displayed: Make sure the channel logo image is indeed present in your img folder and that the file name is correctly configured in the iws_config.xml (review 7.1.2 for more details). Double-check the channel id and the image file name. Don’t forget that the XMLs are case-sensitive. If this has been verified and you still have no image, it may be due to the IIS or your browser caches. Next step is to restart your website from the IIS manager and empty your browser cache. Finally, if you still experience the problem, it may be an encoding issue in the XML file, in the translation part. Please check 11.2.1 for more details. . No channel logo is displayed at all: Though the root causes developed in previous point may still apply here, no image displayed at all points most probably to an issue with the img folder itself. Please make sure that you correctly configured the prefix path of the img folder in the config.js as explained in 4.3.2, and the suffix path in front of each image in the iws_config.XML, as detailed in 7.1.2. To verify whether the complete path is indeed pointing to your images, just copy/paste config.js’ sRootImg value in a notepad then add one of iws_config.xml’s img string values at the end of the path. The path that is now formed must be usable and open your image when pasted in windows explorer. If not, please correct the prefix/suffix part as you see fit, as long as the total path indeed reached the image itself. . Some or all channels logos seem crushed or elongated: please remember that the expected picture format is a 100*100 to 200*200 pixels image over a squared white background. D) No PDFs: Now everything should be working correctly, but you may see the following screenshot when you launch an audience curve: If so, this is an issue with the PDFs. First of all, make sure that the Curve PDF export has indeed been generated for selected date, and that its name follows the naming convention: CUR.REG.YYYYMMDD.pdf If so, please make sure that the path to the Curves folder has been properly configured in the iws_config.xml (see 4.3.1) If those steps haven’t got you through the problem, please contact your I# support team. 12.2 CUSTOMIZATION Like the previous chapter, dedicated to possible installation issues, we’ll now follow the customization detailed in chapter 7, revising once again the possible issues in each step in the chapter’s order. Do not hesitate to revise the whole chapter 7 before following up with this troubleshooting section. 12.2.1 INTERFACE CUSTOMIZATION - Literals: As per now, we haven’t faced any issue with the literals yet, but as we’ll probably find the biggest diversity in alphabets within the Res and dictionary XMLs, we’ll give you this advice that will be a guideline for this whole section: always make sure to edit your XMLs with an utf-8 encoding compatible XML editor. A second advise we can give you is not to fiddle too much with the Res XML files (at least make sure to always have a backup copy of the original), especially with the length of the literals as they’re been thought to fit exactly in the actual interface. And remember that this interface is designed to work on a PC 21” screen as well as on the 3” screen of a mini Smartphone…. - Images: Images have been largely covered in 11.1.3.C, but as this section in chapter 7 also covers the Translations part of the iws_config.xml, we’ll nail the coffin on the XML editing issues by repeating once and for all the three most important rules: . XMLs are case-sensitive. . Please respect the exact string building of the XML: a misplaced point, slash, space… can be the root cause of an error. . Always make sure to edit your XMLs with an utf-8 encoding compatible XML editor. If you want to verify that your editing went well, you can try and open the XML with Internet Explorer. If you see it correctly, the edition is good. In case you added or modified a channel, you’ll have to edit the Translations part of the iws_config.xml. If, after that, you face some issues with said channel, like programs not being listed, the problem is most certainly related to the channel’s translation. Make sure it’s been properly edited in the iws_config.xml. This is especially true if you use alphabets other than Romanic. If so, we recommend you to open one of the HCBs that you have already produced with the UTF-8 encoding compatible XML editor of your choice, and copy/paste the channel name from it into this channel’s iws_config.xml translation string. 12.2.2 TEMPLATES CUSTOMIZATION - Apart from the general rules for XMLs mentioned before, please follow next rule after any edition of the templates: if you just added a new ingredient and it doesn’t appear properly, or some functions don’t work with this specific ingredient, while the rest is working fine, make sure that you have populated the iws_config.xml accordingly. After you edited the iws_config.xml, please remember to restart the iSharpServer.exe for the changes to be accounted for in your interface. - Also remember that you’ll have to reload all past dates you want your new ingredient to be part of after editing your templates if you want its historical information. 12.2.3 UNITS DECIMALS CUSTOMIZATION - If you don’t see the unit decimals that you want in your I#, please make sure that the templates have been calculated with the required precision and that the number of decimals has been correctly set within the iws_config.xml. - If it keeps failing, make sure that you have indeed restarted the isharpserver.exe after the edition of the iws_config.xml. If so, and you still don’t see it, restart the website from the IIS manager and empty your browser’s cache. If it doesn’t do the trick, contact your I# support team. 12.3 DAILY USAGE We’ll sum up in this section miscellaneous issues and advices that we gathered from our daily usage of I#. 12.3.1 I# WEB PAGE FAILS TO LOAD . Step 1: Make sure your internet connection is working by browsing on a known website . Step 2: Check through IIS manager that the website is indeed up and running on the web server. . Step 3: Verify that the web service is indeed working by calling the IWS.asmx page as explained in section 9.1. . Step 4: Verify that the isharpserver.exe is up and running. . Step 5: verify that the communication passes between web and data services by using the GetLog function of the IWS.asmx page, populating the credential fields by using the information found in data server’s users.xml: name and passwords are obvious and idLevel is the user’s id in users.xml: - If you receive the following error message, connection is failing between web and data services. If so, check with your IT department: - If you get a result similar to the following, then connection is indeed established: If so and I# still fails to load, please contact your I# support team. 12.3.2 SOME TEMPLATES FAIL TO LOAD . Step 1: Make sure the corresponding HCB is indeed loaded in the data folder and respecting the subfolder and naming convention: YYYY\YYYYMM\YYYYMMDD\CAL.REG.YYYYMMDD.hcb . Step 2: Verify that the hcb is not corrupted by opening it in Internet Explorer: if you view it correctly, pass to the next step, otherwise, please try to recalculate the template and export it from InfoSys+. If it still fails, this becomes an I+ issue, so follow the normal workflow for I+ problems reporting. . Step 3: We’re now going to verify that I# web service query for the specific template is indeed does rd indeed get answered with the matched template by the data server. To do this, we’ll call the 3 function of the IWS.asmx: GetTemplate. This function is really helpful as it allows you to specify all data and maybe pinpoint where the failure happens. To fill up the form, we’ll need to have the iws_config.xml, one of the SUM.*.hcb output export and eventually the dates.cfg opened in our editor. A) But, first of all, we’ll call the UserLogin function, as detailed in 11.1.1, in order to receive the session number we’ll need: B) Let’s analyze the GetTemplate form: - idUser and idSession have been provided by UserLogin function. - The following data will be provided by the iws_config.xml: idTemplate is the template ID you’ll find in the section Filters, the description guiding you in choosing the matching code: idSector is to be found in the corresponding Region: idChannel is the Item id you’ll find in the Translations part: idLanguage in the Languages section: - As you’ll have noticed, I left out some fields as their filling info is not to be found in the iws_config.xml: idDate must be set to 0. idUnit must be left blank. idTimeband must be left blank. idTarget code will be found in the Targets dimension of the SUM.*.hcb: C) Now that we have all necessary information, we can call our GetTemplate function. I.e: as admin, we’ll call for summary template of all Turkey for Individuals 5+ for ATV channel in English: The expected result is for us to see the XML file just as we would if we were to open the hcb with Internet Explorer. In any other case, check the explicit error that will be provided and, if possible, correct the GetFunction parameters. Otherwise, or if you don’t know how to interpret the error message, please make a screenshot of it and report to your I# support team. Following screenshot shows the expected result: . Step 4: If the template is correctly loaded via GetTemplate function but still fails to display within I#, restart the website through IIS manager and clear the cache of your browser. . Step 5: If no luck then, please report the issue to your I# support team 12.3.3 LATENCIES BETWEEN THE REQUEST AND THE DISPLAY OF THE OUTPUT If you experience latencies between a request and the displaying of its output, the most probable cause lies outside of InfoSys# troubleshooting scope, due to some network or server issues. However, as mentioned in point 10.2.2, there’s the possibility of experiencing latencies due to a too big activity.log. This file, as explained, is displayed in the log tab of the always on isharpserver.exe and the latter displays the log with a certain layout, using different colors to illustrate different events (see screenshot below). The issue, when the log becomes huge, is that the layout refreshing starts using the server resources heavily, creating latencies. In order to avoid those possible latencies, the recommended best practice is to houseclean the activity.log, keeping a regular backup (manually or with a scheduled task) of the file, by simply renaming it. Doing so, you’ll force the isharpserver.exe to regenerate a fresh new Activity.log file. We recommend you to back the activity log file up as soon as it reaches a size superior to 1MB. If it reaches 2 MB, isharpserver.exe will pop you a warning message to record this to you. Finally, in order to avoid this layout refreshing issue, we’ve developed an auto-refresh checkbox, that we recommend you to keep unchecked as long as you’re not specifically monitoring the InfoSys# activity from the log view of isharpserver.exe. Even then, it is best practice to refresh manually the log thanks to the relevant button. In any case, should lags occur, keep in mind to verify whether the refresh box is checked, and if so, have the reflex to deselect it. 12.3.4 ONE LAST WORD Please understand that this section will regularly be updated in function of our knowledge base and the I# incidents you’ll report to us. To facilitate the process, we’ve created a new InfoSys# project in footprints, from which you can report your issues and doubts, while new development queries will still need to be raised via InfoSys Developments project. If you don’t have access to InfoSys# project of footprint, please contact InfoSys# support team. 13 HISTORY Version 1.0 1.1 1.2 Author KMSpain KMSpain KMSpain Date 23/11/2012 04/09/2013 21/02/2014 1.3 1.4 KMSpain KMSpain 27/02/2014 10/03/2014 Comments Creation Added Annex A Added Section 9, changed the requirements, reviewed the templates and added details about SCUR and PRH, added date locale possible issue to the troubleshooting section. Changed step 1 of section 12.1.2 Added point 9.5 (persistent connections), and specified the isharpserver.exe versions from which features section 9 features are available. ANNEX A: HCB (HYPERCUBE) FORMAT A.1 INTRODUCTION A hypercube is a data structure which stores information of one n-dimensional array, where n is the number of dimensions in the hypercube. Each dimension has a fixed numbers of items: an item is the atomic element that references a value in a hypercube, which is usually a double. Each dimension has a name, and all its items also have names and attributes Hypercube values are referenced by the indexes of the dimensions of the hypercube (the index of each dimension is required). Dimension attributes don’t depend on the other dimensions (it depends just on the index of the item of one dimension). A one-dimensional hypercube could be seen as a simple array of items (doubles). A two-dimensional hypercube could be seen as a plane table: one dimension would be the rows, and the other dimension would be the columns. A three-dimensional hypercube could be seen as a cube. A.2 FORMAT HCB files are codified in XML format. A main <Hypercube> section contains two sections: <Dimensions> and <Data>. <Hypercube> section contains information on the data generation (InfoSys+ version, calculation date, user, source report name). <Dimensions> contains all the dimensions of the hypercube in <Dimension> nodes. Each <Dimension> reports required attributes such as name and id. <Dimension> nodes contain <Item> nodes, which report required attributes name and code. <Data> contains all the data, traversed from the outer dimensions to the inner dimensions (in the same order they are reported in the <Dimensions> section), traversing all the items (also in the same order they are reported in the <Dimension> nodes). The first value always belongs to the first item of each dimension, the second value belongs to the first item of each dimension but the last one (which will be the second one), the third value belongs to the first item of each dimension but the last one (which will be the third one), and so on until the last value that belongs to the last item of each dimension. Values are separated using commas, and the decimal separator is the dot. A.3 EXAMPLE
© Copyright 2024