Windows Vista—Exciting stuff, but be prepared!                                                                                                
Trouble viewing the newsletter? Read the online version.

 
SEN Logo
 
New for professional Developers
   

Synergy/DE | Synergex | News | Classes | Contact

 

August 30, 2007
  In this Issue  

Windows Vista—Exciting stuff, but be prepared!

Synergy/DE meets “Works with Vista” logo requirements

Spotlight on Synergy/DE 9
Dynamic structures without ^m

How much memory does your Synergy program really take up on Windows?
Synergex CTO Roger Andrews discusses this topic in his latest blog

On Windows Server 2003, an ODBC issue can cause vtxnetd to unexpectedly quit

OLAPWhat does it mean? Why is it important?
A message from VisualSmart, Synergex’s newest division

Synergy-e-Quiz
Submit your answers and be in the running for the next $100 gift check, plus view the correct answers from the last round of questions

Support tech tip
Generating an xfServer prefetch log file with SCSPREFETCH

Platform news

Synergex education

Reduced HelpDesk Support hours on Friday,
August 31

Synergex holiday reminder

blank
   
   
     
   
  Windows Vista—Exciting stuff, but be prepared!
 
Windows Vista is here. According to ECT News Network, in early May 2007 Microsoft said that it had distributed 40 million copies of Vista. The fact that the majority of new desktop and laptop computers being sold today are pre-loaded with Vista is driving the need for compatible software. The built-in productivity and security features of Vista make it an attractive package for both users and developers. Some of the new productivity features are outlined below.
  • Instant Search is a new tool that lets you type a file name, a keyword, or even text contained within a file, and quickly get a set of organized results. Instant Search tailors the results based on your current activity, whether it’s searching for programs in the Control Panel, for music files in Windows Media Player, for an e-mail message in your e-mail program, or searching all of your files and applications in the Start menu.

  • A new feature called Search Folders is a set of predefined searches that run instantly when you click them. Many come preconfigured such as Recent Documents, which shows you all of the recently used documents on your computer, and All Attachments, which shows you all of the files on your computer that are e-mail attachments. You can create custom Search Folders as well.

  • Some of the features of Microsoft Office have been incorporated, such as Windows Calendar, which helps you manage your time by adding events to your schedule. The calendar feature includes pop-up alerts that can remind you when an event is about to occur. You can even track tasks, so you never forget something on your to do list.

  • With the Windows Mobility Center you can control the mobility settings for your mobile computer, such as Power Management and Presentation settings, from one convenient place.

  • When traveling you can keep your mobile computer, desktop computer, and other devices in sync using Sync Center. This ensures that the information you access on the road is the same as it is at home.

  • Windows Vista also comes with improved automatic backup software, allowing you to schedule recurring backups. It allows you to designate the type of file you’d like to backup (documents, photos, or music) as well as the frequency and media type.  Using Restore Wizard, you can choose to restore an individual file, a group of files, or the entire computer and its related settings.
Additionally, Vista includes security improvements to protect client computers from threats. Some of these features are listed below.
  • User Account Control (UAC) allows users to change common settings while running as a standard user.

  • Internet Explorer includes many security enhancements to protect users from malicious Web sites and malware.

  • Windows Defender detects many types of potentially suspicious software and can prompt the user before allowing applications to make possibly malicious changes.

  • New outbound filtering in the firewall provides administrative control over peer-to-peer sharing.

  • Network Access Protection allows administrators to prevent clients that do not meet policy requirements from connecting to the internal network and potentially spreading malware to other machines.

  • Windows Service Hardening limits the damage attackers can do if they are able to successfully compromise a service. This reduces the risk of attackers making permanent changes to the Windows Vista client or attacking other computers on the network.
Synergy/DE and Windows Vista
Adapting software to a new operating system such as Vista poses some challenges. Differences between Windows XP and Vista will require you to make some changes to ensure compatibility. Below are some of the issues you may encounter. (Note that these same changes will be required when you move to Windows Server 2008.)

Writing to the Program Files folder, the Windows System folder and the Registry (non-user keys) are now off-limits to most processes. In order to access these secure areas, the process must run with elevated privileges. You can generally avoid this by writing only to the user’s private profile directories, to the All Users directories or to the user’s own registry entries. If writing to Program Files is required, the operating system must be informed that an elevation is needed. This is done by including a manifest for the process. Synergy/DE version 9 includes dbrpriv.exe and dbspriv.exe, which have the correct elevation manifest.

If your installation must write to Program Files, it may require some changes. The Windows Installer Service runs with elevation for the primary installation process, but any custom actions you include will not be elevated unless you make appropriate changes to make the custom action run in system context.

If you’re using WinHelp, you will find that the .hlp file format will not work on Vista. Synergy/DE version 9 has converted all WinHelp files to the .chm (compressed html) file system and included the new routine %U_HTMLHELP for .chm file support. (The routines %U_WINCOLOR and %U_WNDFONT have also been enhanced to display.chm Help.)

Windows Vista offers many new productivity and security features for users and developers alike, but running your software on this platform will require a bit of planning and some changes to your applications. Moving to Synergy/DE version 9 is the first step in the process and will open the door to this exciting new platform. For more information about Vista, see Microsoft’s Vista Web site or read Roger Andrews’ blog about Vista.
 
top
 

 

Synergy/DE meets “Works with Vista” logo requirements

Microsoft has two logo (certification) programs for Vista: “Works with Vista” and “Certified for Vista”. According to Microsoft, the “Works with Vista” logo tells customers that the software “supports Vista”, and the “Certified for Vista” logo tells customers that the software will provide the “best quality Vista experience”. Meeting the “Works with” requirements typically takes developers a few hours, where as meeting the “Certified for” requirements could take weeks of development effort.

Meeting the requirements for either logo provides you with the following benefits:

  • Logo (gray for “Works with”, color for “Certified for”)
  • PR templates (for press releases, etc.)
  • Listing in Upgrade Advisor (a downloadable tool that tells customers whether or not their machines can be upgraded to Vista, and which applications are compatible)
  • Listing in Windows Marketplace (Microsoft’s online store, where software, games, and music are available for purchase and download)

Meeting the “Certified for” requirements provides these additional benefits:

  • Access to PR services
  • 30 partner points (to use within Microsoft’s Partnership program)
  • Discounted subscription to Windows Vista magazine

Synergy/DE has met the “Works with” logo requirements, and we recommend that you also meet these requirements and obtain this logo for visibility and to show your customers that you support Vista. We are considering going for the “Certified for” logo as well, and we will keep you informed of our plans.
For more information about these logo programs, visit www.innovateonvista.com.

 
top
 

 
Spotlight on Synergy/DE 9

Dynamic structures without ^M

Since early version 5, Synergy Language has supported dynamic memory in the form of %MEM_PROC used in conjunction with ^M. These routines enable you to maintain a dynamic collection of records in a Synergy application, but this method can make for some esoteric code. And while it's possible to use macros to hide this, macros can make the code even more difficult to maintain.

With version 9, however, Synergy Language now includes structfields and something called the System class framework, both added as part of Synergy Language's support for objects. Structfield is simply a new value type (like alpha or decimal) that can be used to declare a field that has the size and layout of a structure. The System class framework is made up of system classes (much like .NET System classes) that provide a set of intrinsic functions. To use these System classes, however, you don't need to know much about OO programming, and you don't need to convert your application to use objects. As you'll see below, with the ArrayList class, using these classes can be similar to calling a function or subroutine.

For example, suppose you'd like to create a collection of records. You don't know how many records you'll eventually have, so you really can't use an array without overestimating the size. You could do the following, but the resulting executable would be quite large.

  .define MAXRECS, 100000
  myarray, [MAXRECS]a ^size(rec)

A better solution (and the best solution before version 9) is to use %MEM_PROC to allocate dynamic memory, and then to ^M to access it. This method works, but as mentioned above makes for cryptic code. With version 9, however, Synergy Language now includes two dynamic array classes: System.Array and System.Collections.ArrayList. ArrayList is the useful one for our purpose. It's made up of routines (known as methods) that along with its properties enable you to manipulate collections of objects.

But for our example we don't want collections of objects. Instead we want a collection of records, which we'll handle as structfields. Here's where some of the power of Version 9 (namely inheritance) comes into play. By extending the ArrayList class, you can identify the contents of the ArrayList as a collection of structfields, rather than objects. The code to extend ArrayList is available in CodeExchange for download*. It is completely generic and can be included in any Synergy program as is. Simply include it after defining LIST_ITEM (the structure name) and LIST_NAME (the ArrayList name), as in the following:

  .define LIST_ITEM, MyStruct
  .define LIST_NAME, MyArrayList
  .include "arraylist.def"
 
So, to get to our example, the first thing to do is to create a collection array. With the %MEM_PROC method, we would create a memory handle (seen below as rhnd) to a block of memory. The block of memory would include space for a number of records. Here we allocate space for 100 of our records:

  rcap = 100
  rhnd = %mem_proc(DM_ALLOC, ^size(MyStruct)*rcap)
 
With ArrayList, however, we'll instead use the new Synergy Language statement NEW to create an object handle (seen below as slist) to a MyArrayList object that has the capacity for 100 objects. However, unlike the %MEM_PROC method, memory for the records hasn't been allocated yet.

  slist = new MyArrayList(100)

Next, we'll add entries to the collection. With ^M, we would reference the memory handle rhnd and the relative position in the memory array by using the structure name and dimension specification. (But we would have to make sure we didn't run off the end of the allocated memory!)

  ^m(MyStruct[ix], rhnd) = rec 

If we had used all of the available memory, we would first need to resize the memory by calling %MEM_PROC again:

  rcap = rcap + 100
  rhnd = %mem_proc(DM_RESIZ, ^size(MyStruct)*rcap, rhnd)

With ArrayList, however, we simply call the Add method for ArrayList, passing the record we want to add. Here, we simply add the structfield. The ArrayList expands automatically as we add entries, so there's no need to explicitly resize it.

  slist.Add(sfld) 

Now that we've loaded the collection, we might want to reference the fields within the entries. With ^M, we would again reference the memory handle rhnd, setting the relative position to the field itself:

  fld = ^m(MyStruct[ix].field, rhnd)

With ArrayList, on the other hand, we simply call the Indexer property using the  familiar array syntax

  fld = slist[ix].field 

That's all there is to it. There are a host of other things you can do with your ArrayList object, like insert and delete entries, but we'll leave that for another discussion. The complete example used in the article (both the %MEM_PROC version and the ArrayList version) can be downloaded from Code Exchange*. Additionally, for Professional Series Workbench users, the CodeExchange entry includes a template for creating your own ArrayList classes in place of using arraylist.def.

For more information on strucfields and the System class framework, see the Synergy Language Reference Manual* for version 9.

For more information about version 9 features, visit our Web site.

*Attention HelpDesk Support customers: After clicking on the above link, log into the Resource Center. You'll then be redirected to the appropriate page. Not yet on HelpDesk Support? Contact your SynergyDE account manager to sign up.

 
top
 

 
  How much memory does your Synergy program really take up on Windows?

Synergex CTO Roger Andrews discusses this topic in his latest blog. You are welcome to add comments to the blog. Simply fill out the comment form below Roger’s article.

 
   
top
   

 

On Windows Server 2003, an ODBC issue can cause vtxnetd to unexpectedly quit

Due to a Microsoft issue, vtxnetd may quit unexpectedly when an application attempts to use ODBC to connect to a database on a Windows machine. This can happen if you use

  • xfODBC with a DSN that specifies "Net" (a value for the Vortex driver field in the xfODBC Setup dialog)
  • SQL Connection with VTX11, VTX12_ODBC, or VTX12_SQLNATIVE with a connect string that includes "net:".

According to Microsoft Knowledge Base article 940046, when multiple threads connect to the database concurrently, memory can become corrupted. So when vtxnetd attempts to use the corrupted memory, it gets an access violation. The Knowledge Base article lists two solutions: a hotfix and a workaround.

See http://support.microsoft.com/?kbid=940046 for information.

top
 

 

OLAP? What does it mean? Why is it important?
A message from VisualSmart, Synergex’s newest division

Business intelligence and analytics technologies have evolved their own terminology. One term you may come across is OLAP. Here is a brief explanation of why it is important to front-line decision-makers.

Imagine that interacting with your data is like a conversation. You start by asking questions that quickly lead to answers that beg yet more questions. Finally, you arrive at an answer or close your discussion with a thoughtful conclusion. When it comes to data, you need the right kind of approach to arrive at that level of insightful give and take.

OLAP, or online analytical processing, presents and stores data in a format that you can easily understand, offers calculations that measure data, and lets you ask questions by investigating interesting or concerning points of information.

More specifically, an OLAP engine takes data from single or multiple data sources and reorganizes it into a multidimensional structure (a “cube”)  that makes navigating and analyzing data more intuitive and faster. VisualSmart business intelligence employs an OLAP engine that not only combines your data for easy analysis but also centrally stores your institutional business logic. Then you can access your data with VisualSmart tools to analyze or “dialogue with the data.” This helps you create many kinds of analyses and reports. You can put these analyses and reports in a  dashboard. then investigate when the metrics move outside of expected goals.

To learn more about Synergex’s VisualSmart on-demand business intelligence, please visit the website at www.visualsmart.com (This article is adapted from a Microsoft article.)

 
top
 

 
Synergy-e-Quiz    
 


Submit your answers and be in the running for the next $100 gift check. Test your Synergy/DE and trivia knowledge. Play now.

Curious about the answers to the last round of questions?
Find out which answers were correct, and why.

top

 
   
 
 
 
 
 
   
 

 
  Support tech tip
 
 

Generating an xfServer prefetch log file with SCSPREFETCH

The prefetch feature, which was added to xfServer in Synergy/DE 8.3, improves sequential READS performance by enabling the client to prefetch sequential records from the server and store them in a buffer until they are needed. To turn prefetching on, you set the SCSPREFETCH environment variable to the desired size of the prefetch buffer.

You can generate a log file that contains statistics on prefetching by simply appending the letter ‘s’ to the end of a valid SCSPREFETCH value.

For example, to set the size of the prefetch buffer to 16K and generate a log file on UNIX:

SCSPREFETCH=16s; export SCSPREFETCH

Using the ‘s’ option creates the file pfstat.log in the application’s current directory. The pfstat.log file reports the total number of cached READS, noncached READS, network fetches, and records cached for each file. Data is appended to the file each time a file (that was opened with xfServer) is closed.

The information in pfstat.log could be helpful in diagnosing xfServer issues when READS prefetch support is involved. However, because logging is involved, this option will degrade performance and should therefore be used only when debugging.

For more information on prefetching records, see the “Configuring xfServer” chapter of the Installation Configuration Guide and SCSPREFETCH in Environment Variables and System Options, available in the Online Manuals* section of the Resource Center.  

*Attention HelpDesk Support customers: After clicking on the above link, log into the Resource Center. You'll then be redirected to the appropriate page. Not yet on HelpDesk Support? Contact your SynergyDE account manager to sign up.

 
     
top
 

     
Platform news
 


Microsoft
Microsoft reacts to kernel hacks, defends Vista
August 15, 2007

First exploit appears for Patch Tuesday vulnerability
August 20, 2007

Microsoft unveils Exchange Server 2007 Service Pack 1 in technology preview
August 13, 2007

SCO
SCO could face cash crunch after Novell trial
August 23, 2007

IBM and Sun Solaris
IBM expands support for the Solaris OS on x86 systems
August 16, 2007

 
     
top
 

 
 
Synergex education    


September 5, 2007 - 8AM PDT - Workbench Highlights* - At your desk
*All attendees receive a free t-shirt!

November 20, 2007 - 8AM PDT - Workbench Highlights* - At your desk
*All attendees receive a free t-shirt!

   


  top
 

 

Reduced HelpDesk Support hours on Friday, August 31

The Synergy/DE HelpDesk Support team will be attending an off-site company event on Friday, August 31st.  Support services will be available between the hours of 5:00 am pdt and 12:00 pm pdt.  Should you require emergency services, Support can be contacted at 916-473-3457 between the hours of 12:00 pm pdt and 5:00 pm pdt.

 
top
 

 

Synergex holiday reminder

Synergex will be closed Monday, September 3, in observation of the Labor Day holiday. If you anticipate needing our assistance on that day, please contact us at synergy@synergex.com to make arrangements.

 
 
 
 

Subscribe to Synergy-e-News.

To view past issues of Synergy-e-News, see the Synergy-e-News Archive.
To remove yourself from the Synergy-e-News mailing list, please click here.

Trademarks: Synergex, Synergy, Synergy Development Environment, Synergy/DE, and all other Synergy/DE product names are trademarks of Synergex. All other product and company names in this newsletter are trademarks of their respective holders.

Synergex International · 2330 Gold Meadow Way · Gold River, CA 95670
+1 916.635.7300 | 800.366.3472 (North America) | 0800.898.368 (United Kingdom)

Copyright © 2007 Synergex International Corporation. All rights reserved.

Synergy-e-News 08302007