Phone800.366.3472 SupportGet Support DocumentationDocumentation Resource CenterResource Center
search
close
Open Menu

Synergex Blog


Announcing SDI 2022.05.1198

By Steve Ives, Posted on May 20, 2022 at 3:44 pm

We are pleased to announce that a new version of Synergy DBL Integration for Visual Studio (SDI), version 2022.05.1198 is available for download from the Resource Center and is recommended for use by all Synergy developers. This is a quality improvement release, and as always, we encourage you to review these changes listed in the release notes.

This release includes changes needed to properly support Visual Studio version 17.2.

The Synergy/DE tools included in this version of SDI (dbl.exe, dblproto.exe, dblibr.exe, dblink.exe, dbl2xml.exe, and rpsutl.exe) are from Synergy/DE version 12.2.1.1001.


Announcing SDI 2022.05.1168

By Steve Ives, Posted on May 4, 2022 at 4:45 pm

We are pleased to announce that a new version of Synergy DBL Integration for Visual Studio (SDI), version 2022.05.1168 is available for download from the Resource Center and is recommended for use by all Synergy developers. This is primarily a quality improvement release, and as always, we encourage you to review these changes listed in the release notes. In addition, there are a small number of changes in behavior, as follows:

  • Newly created traditional Synergy projects and existing traditional Synergy projects that don’t have a TargetRuntimeLevel property will now target version 12.1.1 of the Synergy runtime by default. Previously both types of projects defaulted to version 11.1.1.
  • The targeted Synergy runtime version for a project that targets .NET Core or .NET 5 or higher is now determined by the version of the Synergex.SynergyDE.synrnt NuGet package that the project references. Additionally, the “Target Synergy runtime” field is no longer displayed on the Build page of project properties for Synergy projects that target .NET Core and .NET 5 and higher.
  • When you open a solution containing projects that target a runtime version below the minimum runtime version supported by SDI (10.3.1b), a window will now open prompting you to upgrade those projects.
  • The .NET Framework upgrade dialog will now open whenever you open a solution with projects that target a .NET Framework version that is below the minimum supported for Synergy projects (4.7.2).

The Synergy/DE tools included in this version of SDI (dbl.exe, dblproto.exe, dblibr.exe, dblink.exe, dbl2xml.exe, and rpsutl.exe) are from Synergy/DE version 12.2.1.1001.


Announcing SDI 2022.04.1114

By Steve Ives, Posted on April 4, 2022 at 8:46 pm

Shortly after releasing SDI 2022.03.1110 we became aware of a problem requiring immediate attention. That issue has now been resolved and we have released Synergy DBL Integration for Visual Studio 2022.04.1114, and have removed the previous version from the downloads site. If you had already upgraded to the 2022.03.1110 release we recommend immediately upgrading to 2022.04.1114, and we apologize for any inconvenience that this may have caused.


Announcing Synergy/DE 12.1 LTS

By Steve Ives, Posted on April 1, 2022 at 1:38 pm

We are pleased to announce that the first Long-Term Support (LTS) release of Synergy/DE is now available. The release, version 12.1.1.3278, is available for all supported platforms and is ready for download from the Synergex Resource Center. We encourage all Synergy developers to update to this version to take advantage of the new features and improvements it contains.

The most significant changes in this release are

  • Support for Microsoft .NET 6 in addition to .NET Framework.
  • Support for Microsoft Secure Channel (Schannel) instead of OpenSSL for encryption on Windows.
  • Validation of cryptographic certificates for authenticity, revocation, and expiration.
  • Support for Linux license forwarding, which makes it possible for Linux systems to obtain licenses from a Synergy license server on a Windows system.

For more detailed information, please refer to the announcements of the two feature releases that preceded this LTS release, Synergy 12.0.1.3272 (September 2021) and Synergy 12.0.1.3275 (February 2022).

If you use encryption anywhere in Synergy, we encourage you to read about the encryption changes before upgrading. See the recent article Encryption Changes in Synergy 12.

As always, the release also contains miscellaneous enhancements and quality improvements throughout the Synergy/DE product set. For a complete list of changes, please refer to the release notes.

And, finally, note that we recently released a new version of Synergy DBL Integration for Visual Studio. You can find more details by reading Announcing SDI 2022.03.1110.

The Synergex Team


Announcing SDI 2022.03.1110

By Steve Ives, Posted on March 31, 2022 at 12:00 pm

We are pleased to announce that a new version of Synergy DBL Integration for Visual Studio (SDI), version 2022.03.1110 is available for download from the Resource Center and is recommended for use by all Synergy developers. This is a quality improvement release, and as always, we encourage you to review these changes listed in the release notes.

The Synergy/DE tools included in this version of SDI (dbl.exe, dblproto.exe, dblibr.exe, dblink.exe, dbl2xml.exe, and rpsutl.exe) are from Synergy/DE version 12.2.1.1000.


Encryption Changes in Synergy 12

By Steve Ives, Posted on at 10:49 am

The first Long Term Support (LTS) release of Synergy, version 12.1, is right around the corner, and there is a significant change of which all developers should be aware. The change relates to how encryption works on Windows systems and how cryptographic certificates get validated on several platforms. If you use any of the encryption capabilities in Synergy/DE products, please review the information below before upgrading to Synergy 12.

Encryption Provider Changes on Windows

In Synergy 12, we have changed how we implement encryption on Windows; we now use Secure Channel, which is part of the Windows operating system, instead of OpenSSL. There are many benefits to doing so, not least of which is that on Windows, developers no longer need to:

  • Download and deploy OpenSSL DLLs to use encryption.
  • Maintain cryptographic certificates on disk in PEM files.
  • Create, manage, and specify Certification Authority (or CA) files to make HTTPS calls securely.

No code changes are required to take advantage of this new encryption provider, as all required changes have been made internally without altering the signatures of any routines. However, there are some optional changes that you might want to make to your code or procedures to reduce the overhead required to manage certificates and CA files.

The first change you might consider relates to configuring xfServer or xfServerPlus to use encrypted connections. Previously, there were two ways to do this: using the rsynd utilities -cert command-line option or using the “Enable Encryption” and “Certificate file” fields in the service configuration dialogs of the Synergy Configuration Program. These mechanisms previously required you to provide a file system path to the certificate, requiring the certificate to be exported from the Windows Certificate Store to a PEM file.

While this is still supported, a new syntax allows you to refer to the certificate directly in the Windows Certificate Store. There are two variations of the new syntax, one specifying the store location and common name and one specifying the store location and thumbprint of the certificate. For example,

LocalComputer\Root\MyCertificate

 

A similar scenario exists when implementing encryption with the SQL OpenNet protocol used by the SQL Connection and xfODBC products. This time encryption is activated via the -e option to the vtxnetd or vtxnet2 commands, and once again, a Windows Certificate Store path can serve as an alternative to a PEM file spec.

And finally, another change to consider is a slight change when using the Synergy HTTP API to make secure HTTPS calls to websites or services. Previously, to make HTTPS calls securely, it was necessary to provide a Certification Authorities (or CA) file. A certification authority is a trusted external entity from which cryptographic certificates may be purchased or otherwise obtained. The CA file you provide contains one or more certificates identifying the certification authorities whose issued certificates you are willing to trust.

Of course, this is a tough decision, so most developers defer to a trusted external entity such as Microsoft, which maintains such a list of trusted entities as part of the Windows operating system, primarily for use in web browsers such as Internet Explorer and Edge. Developers would use a Windows utility to export the Windows Certificate Stores’ Trusted Root Certification Authorities list to a file and then use a utility such as OpenSSL to convert that file into a format acceptable to the Synergy HTTP API. Of course, this is an operation that should occur regularly, as the list of trusted entities and their associated certificates changes periodically.

Once again, this mechanism is still supported, but in Synergy 12, a simpler alternative is to pass the literal value “cert_store” to the CA file parameter of the various HTTP API routines. Doing so instructs the Synergy runtime to validate certificates directly against the Trusted Root Certification Authorities list in the Windows Certificate Store.

Certificate Validation Changes on Windows, Linux, and UNIX

Another related change is more wide-ranging, affecting all platforms except OpenVMS. Starting with Synergy 12.1, cryptographic certificates get validated for authenticity, revocation, and expiration before use. This validation did not previously occur, and this means that there is a possibility that some existing deployments could be running with untrusted, revoked, or expired certificates.

With xfServer, xfServerPlus, and SQL OpenNet, certificate validation occurs during service startup. In such a scenario, upgrading to Synergy 12.1 could break existing environments as, for example, instances of those services might fail to restart during the upgrade because of bad certificates.

This change could also impact secure HTTPS connections using various HTTP API routines.

To head off any problems, we recommend performing an audit of any cryptographic certificates used in your environment before upgrading to Synergy 12, checking that those certificates:

  • Are from a trusted source, or in the case of “self-signed” certificates, have been registered as trusted.
  • Have not been revoked since issued.
  • Have not expired.

And if you have not already done so, we also recommend implementing an ongoing process designed to ensure the replacement of certificates before they expire.

If the worst comes to the worst and you encounter an invalid certificate in a production scenario, we have provided an “emergency escape hatch” to get you up and running quickly. Specifically, the rsynd, vtxnetd, and vtxnet2 utilities have a new command-line option, -invcertok, and for xfServer and xfServerPlus, the Synergy Configuration Program has a new checkbox, “Allow startup with an invalid certificate.” Using either of these options makes it possible to start an xfServer or xfServerPlus service even with an invalid certificate, as was previously the case.


Announcing SDI 2022.03.1080

By Steve Ives, Posted on March 11, 2022 at 5:18 pm

We are pleased to announce that a new version of Synergy DBL Integration for Visual Studio (SDI) version 2022.03.1080 is available for download from the Resource Center and is recommended for use by all Synergy developers. This is a quality improvement release, and as always, we encourage you to review these changes listed in the release notes.

The Synergy/DE tools included in this version of SDI (dbl.exe, dblproto.exe, dblibr.exe, dblink.exe, dbl2xml.exe, and rpsutl.exe) are from Synergy/DE version 12.2.1.1000.


Announcing SDI 2022.02.1048

By Steve Ives, Posted on February 17, 2022 at 4:26 pm

We are pleased to announce that a new version of Synergy DBL Integration for Visual Studio (SDI) version 2022.02.1048 is available for download from the Resource Center and is recommended for use by all Synergy developers.

SDI now has a project template called Synergy Script; it creates a project configured to manage UI Toolkit Window Script (.wsc) files (the source code for a UI Toolkit Window Library) and automates the process of compiling the script(s) to create a Window library. Please note that you must also use Synergy/DE 12.0.1.3275 or higher to use this feature.

Several customers with UI Toolkit applications were involved in the design and testing of this new project type, and we would like to take this opportunity to thank them for their time and their commitment to helping us ensure that the new feature meets customer needs.

This release also includes quality improvements, and as always, we encourage you to review these changes listed in the release notes.

The Synergy/DE tools included in this version of SDI (dbl.exe, dblproto.exe, dblibr.exe, dblink.exe, dbl2xml.exe, and rpsutl.exe) are from Synergy/DE version 12.2.1.1000.


Announcing Synergy 12.0.1.3275

By Steve Ives, Posted on at 3:44 pm

We are pleased to announce a new Synergy/DE feature release, version 12.0.1.3275, which contains a complete implementation of all new features, changes, and improvements that will soon be released as Synergy/DE 12.1 LTS. This will be the final feature release in the 12.0 series, and we strongly encourage you to take advantage of the opportunity to test your applications with the new version prior to the upcoming LTS release.

Feature releases are similar to previous Synergex releases, i.e., they contain features and fixes, they go through our extensive and rigorous testing procedures, and they’re suitable for use in all situations. LTS releases are a new type of release to which we will only add quality and security improvements and no new features. For more general information about these types of releases, see our Release Strategy page.

Synergy .NET Support for .NET 6

As announced almost two years ago, the primary focus of Synergy 12 is to add support for .NET 6 (formerly known as .NET Core) as an alternative to .NET Framework in all the places where Synergy and .NET meet, including:

  • Building and deploying Synergy .NET applications with .NET 6
  • Using the .NET Assembly API to embed and execute .NET 6 code from traditional Synergy
  • The introduction of a new xfNetLink .NET client built with .NET Standard 2.0, and including a new object pooling mechanism (COM+ is not available in .NET 6)
  • Making all of the ancillary libraries (XML API, SQL Connection API, Repository API, etc.) available as NuGet packages

One thing that is not possible with Synergy .NET in .NET 6 is creating Windows desktop applications (Windows Forms and WPF). This is because Microsoft has decided to prevent third-party Visual Studio integrators from accessing the visual design surfaces for those environments.

As is always the case, we want all Synergy developers to test their applications with this release, but in particular, we are encouraging developers who use Synergy .NET with .NET Framework to try out their code in a .NET 6 environment as soon as possible; we are eager to receive your feedback on your experiences in that specific area.

Linux License Forwarding

Another feature in Synergy 12 is the ability to use TCP/IP licensing for Linux systems when subscription licenses are used. On new systems where licensing has not been configured, a new question during the installation provides the option to enter the name of a Windows license server, and when you do so, the Linux system will connect to that server for access to product keys.

When using a network license server, a local license server (synd) process is still present, but rather than maintaining a local license database file, it communicates with the license server to allocate licenses. Linux systems configured for network licensing access the same product keys that Windows clients use, so for this configuration, you will order Windows licenses for a new Linux system.

There are several advantages to using network-based licensing on Linux systems. It simplifies license management and enables shared concurrent-use licensing across multiple Windows and/or Linux systems and/or VMs. It is also an excellent solution for developers, who can now use the license server on their development systems to operate any number of Linux and/or Windows systems and/or VMs, without having to license each system individually.

And finally, this enhancement also removes a significant block that previously prevented Synergy applications from running in containers. For example, it is now possible to deploy Synergy applications in Docker containers and managed by a Kubernetes cluster. This opens up many new possibilities for Synergy applications, including the ability to deploy Synergy applications in the Public Cloud.

Encryption Enhancements

Another area of change in Synergy 12 is that on Windows, we no longer use OpenSSL but instead use the Microsoft Secure Channel APIs that are part of the Windows operating system. As a result, you no longer have to download and deploy OpenSSL and no longer need to create and provide “CA Files” to use the HTTP API securely.

Related to this, but affecting all platforms except for OpenVMS, we now validate certificates for authenticity, revocation, and expiration whenever they are used to establish secure connections. In most scenarios, this did not previously happen.

IMPORTANT: THIS CHANGE COULD BREAK YOUR ENVIRONMENT!

When enabling encryption for xfServer or xfServerPlus, or when enabling encryption on private Web servers accessed with the HTTP API, developers frequently use “self-signed” certificates. Unfortunately, these certificates were not validated in most cases, so some systems may likely be operating with invalid (untrusted, revoked, or expired) certificates. If a Synergy 12 upgrade is applied to such a system, the services with invalid certificates will fail to start.

If you use any cryptographic certificates in your Synergy environment, we recommend reviewing them before you update to Synergy 12 to ensure that they are from a trusted source, have not been revoked, and have not expired.

To minimize the potential impact of this change, we added a new -invcertOK command-line option to the rsynd utility and a corresponding “Allow startup with invalid PEM file certificate” check box to both of the xfServer and xfServerPlus configuration dialogs in the Synergy Configuration Program.

On Windows, it is no longer necessary to maintain your certificates in PEM files, making it easier to manage those certificates. With xfServer and xfServerPlus, a new syntax is available, allowing you to identify the certificate to be used directly from the Windows Certificate Store. And when using the HTTP API, a new “cert_store” keyword can be used in place of a “CA file,” causing the Windows Trusted Root Certification Authorities store to be used for certificate validation. Please refer to the Synergy 12.0 documentation for additional information.

Also, on Windows, the SQL Connection API no longer uses OpenSSL for data packet encryption; it also now uses Microsoft Secure Channel instead.

Other Notable Changes

  • On Windows, Unix, and Linux, we have added two new functions called %create_server_connection and %destroy_server_connection that can be used to create and terminate a connection to xfServer. The connection can then be used with subsequent OPEN statements via a new SERVERCONNECTION OPEN statement qualifier. This means that applications can now connect concurrently to multiple xfServer instances.
  • We have added a new define SYN_BUILDNUMBER which provides access to the build number of the compiler at compile time
  • We have added a limited GroupBy class for use with Select statements to provide a subset of a SQL “GROUP BY” clause functionality. We plan to add more SQL-like functionality in future releases.
  • In .NET, we have added GRFA support for READ, READS, WRITE, and WRITES statements when using stream, sequential, relative, and block files.
  • We now provide limited support for Global I/O hooks on OpenVMS and have added support for the %DATETIME_TO_I8 and %DATETIME_FROM_I8 routines already available elsewhere.
  • We have improved the isutl utility, improving re-index performance, particularly when processing very large files.
  • On Windows, the Device Licensing tools now support .NET and .NET Core, and .NET Framework.
  • In Workbench, the DPI scaling now adheres to newer Windows gdiScaling, resulting in an improved experience on high resolution and high DPI monitors.
  • And also in Workbench, we have added 17 as a selectable target version for JAR files in Java Component Projects.
  • The Synergy .NET compiler now supports multi-dimensional arrays of boxed value types.

What About .NET Support on Linux?

In addition to supporting the .NET 6 environment on Windows, we will soon introduce support for running Synergy .NET code in .NET 6 on Linux systems. This capability will not be present in the first 12.1 LTS release but will be introduced in a subsequent update.

This change is particularly important for Linux developers using Harmony Core services, as they will then be able to host their Harmony Core services on the same Linux systems that host their applications code and data, no longer requiring an intermediate Windows server to host the Harmony Core services.

Quality Improvements

In addition to the many new features and enhancements mentioned above, this release also includes quality improvements across all products, and we encourage you to refer to the release notes for your products for complete and detailed information. The release notes can be accessed online from the Feature Release Downloads page.

Windows 11 and Windows Server 2022

Please note that Windows 11 and Windows Server 2022 included some changes to screen painting code at a low level in the operating system, and these changes impacted screen painting by Synergy Windows and UI Toolkit applications on those platforms. We quickly resolved the issue, making some changes in the Synergy runtime. This fix was initially released in Synergy 11.1.1i in November 2021 and is also included in this release. Therefore, if you run any Synergy applications on Windows that use Synergy Windows or UI Toolkit, you need to upgrade to at least 11.1.1i or any later release to run successfully on Windows 11 or Windows Server 2022.

Availability

This release is available for the following platforms and can be downloaded from the Synergex Resource Center:


CodeGen 5.8.1 Now Available

By Steve Ives, Posted on February 2, 2022 at 3:31 pm

We are pleased to announce the availability of the first CodeGen release of 2022, version 5.8.1. As always, you can download the new version from our GitHub Releases page and view the documentation at https://codegen.synergex.com.

The enhancements included in this release are:

  • We added the ability to define the minimum version of CodeGen required by your environment by setting the environment variable CODEGEN_MIN_VERSION.
  • We added support for generating sample data (JSON formatted) for structure parameters when using the <PARAMETER_SAMPLE_DATA> parameter loop expansion token.
  • We added a new method loop expansion token <METHOD_RETURN_SAMPLE_DATA>.
  • We corrected an issue that prevented the -checkversion and other related operations from operating correctly.
  • We altered the <INTERFACE_NAME> token to support all case variations.
  • We changed the output of the parameter loop expansion token <PARAM_TSTYPE> to be consistent with the documentation by emitting structure names in camelCase rather than PascalCase.
  • We added a new mechanism for dealing with literal key segment values requiring trailing spaces to be maintained as part of the literal value. This change can alter the output of the <SEGMENT_LITVAL> and <LITERAL_SEGMENT_VALUE> expansion tokens.

This version of CodeGen was built with Synergy/DE 12.0.1.3272 and requires a minimum of version 10.1.1 to operate.


Announcing SDI 2022.01.1003

By Steve Ives, Posted on January 11, 2022 at 2:46 pm

We are pleased to announce that a new version of Synergy DBL Integration for Visual Studio (SDI) version 2022.01.1003 is available for download from the Resource Center and is recommended for use by all Synergy developers. This is a quality improvement release, and as always, we encourage you to review these changes listed in the release notes.

The Synergy/DE tools included in this version of SDI (dbl.exe, dblproto.exe, dblibr.exe, dblink.exe, dbl2xml.exe, and rpsutl.exe) are from Synergy/DE version 12.0.1.3275.


Announcing SDI 2021.12.3567

By Steve Ives, Posted on December 14, 2021 at 4:03 pm

We are pleased to announce that a new version of Synergy DBL Integration for Visual Studio (SDI) version 2021.12.3567 is available for download from the Resource Center and is recommended for use by all Synergy developers. The primary reason for this release is to ensure compatibility with the version 12 Synergy .NET runtime and accompanying libraries built to target .NET Standard 2.0.

SDI now enforces a minimum .NET Framework version of 4.7.2 for Synergy .NET projects. When opening a solution, SDI will automatically upgrade any Synergy .NET projects that target older Framework versions, altering them to target 4.7.2. This may impact your ability to build if you have non-Synergy projects that reference Synergy .NET projects and target a lower Framework version. If you do experience build problems, check the warnings produced by your Visual Studio build for details on .NET Framework targeting issues.

As always, the new release also includes a range of quality improvements, and we encourage you to review these changes listed in the release notes.

The Synergy/DE tools included in this version of SDI (dbl.exe, dblproto.exe, dblibr.exe, dblink.exe, dbl2xml.exe, and rpsutl.exe) are from Synergy/DE version 12.0.1.3274.


Synergy/DE and the Log4j Vulnerability

By Steve Ives, Posted on at 9:08 am

Over the last few days, we have received inquiries from customers asking whether Synergy applications can be affected by the recently discovered zero-day vulnerability in Log4j, a Java logging library. We can confirm that we do not use this library in Synergy/DE or our OpenSource solutions. Therefore, the only way you could be affected by this vulnerability would be if your application directly uses this library.


Announcing Synergy/DE 11.1.1i

By Steve Ives, Posted on November 22, 2021 at 2:48 pm

Synergex is pleased to announce the immediate availability of Synergy/DE 11.1.1i on Windows, Linux, IBM AIX, Oracle Solaris, and OpenVMS. Synergy/DE 11.1.1i is a quality release that includes a wide range of improvements across most of the Synergy product line, and we strongly encourage all Synergy developers to review the release notes (available in the Synergy Resource Center) for detailed information about everything that changed.

Synergy 11.1.1i is the first version to formally support the Windows 11 and Windows Server 2022 operating systems. In some cases, earlier versions of Synergy might run successfully on a new version of Windows, but in this instance, that may not be the case for some applications and system configurations. It appears that Microsoft made some low-level changes in the Windows 11 and Windows Server 2022 operating systems that negatively impacted the way that various UI controls and backgrounds are painted in some UI Toolkit applications running in some video configurations. This issue resulted in poorly rendered UI for affected applications. It is currently unclear what scenarios cause this issue to manifest; it may be related to certain high-DPI configurations. We have addressed this issue with a change to the DBL runtime in 11.1.1i and strongly recommend that all deployments to Windows 11 and Windows Server 2022 systems be with 11.1.1i. Note that this issue also affects the current 12.0.1.3272 feature release, and the fix will be included in an upcoming feature release in that series.

As we continually enhance the isutl utility for improved performance and better recoverability in system crash scenarios, we recommend that all customers using Synergy DBMS download the latest version of the Synergy DBMS Utilities package, regardless of the version of Synergy that you are currently using.

Synergy/DE 11.1.1i is available for download now.


Announcing SDI 2021.11.3540

By Steve Ives, Posted on November 18, 2021 at 9:49 am

We are pleased to announce that a new version of Synergy DBL Integration for Visual Studio (SDI) version 2021.11.3540 is available for download from the resource center, and is recommended for use by all Synergy developers.

This is primarily a compatibility release that formally supports the recently released Visual Studio 2022, and continues to support Visual Studio 2019. In addition, SDI supports both the Build Tools environments of both the 2022 and 2019 versions. The release also includes several quality improvements; as usual, please refer to the release notes for additional information.

We recommend that Synergy developers consider upgrading to Visual Studio 2022, which is the first 64-bit version of the product; the higher memory availability that results from using the 64-bit architecture yields noticeable benefits in several areas, not least of which is the improved speed at which projects load when opening a solution.

The Synergy/DE tools included in this version of SDI (dbl.exe, dblproto.exe, dblibr.exe, dblink.exe, dbl2xml.exe, and rpsutl.exe) are from Synergy/DE version 12.0.1.3272.


Don't miss a post!

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Recent Posts Categories Tag Cloud Archives