devxlogo

upload

New Versions of DACs for RAD Studio 10.2 Tokyo with Support for Linux Released

Devart released the new versions of Delphi Data Access Components for RAD Studio 10.2 Tokyo with support for Linux. Devart, a recognized vendor of database connectivity solutions for Microsoft .NET and Embarcadero Delphi development platforms as well as database development and management software, has released new versions of Delphi Data Access Components for RAD Studio 10.2 Tokyo with support for Linux. The latest versions of Lazarus 1.6.4 and Free Pascal 3.0.2 are also supported. An update includes the following new features: * The new UniDAC version includes a new MongoDB provider which allows working with a cross-platform document-oriented database MongoDB. Its main features are high performance, easy deployment and comprehensive support for the latest versions of the MongoDB server.*Support for the Direct mode in DBF provider is added. Using DBF data provider, it???s possible to work with a variety of database formats: dBaseIII-dBase10, dBase for Windows, HiPer-Six, FoxPro 2, Visual FoxPro.*More appealing work with Oracle in the Direct mode. Support for Oracle 12c authentication, Oracle Cloud (DbaaS), Oracle Encryption, Oracle Data Integrity, and for the ANYDATA type is added.*A new option to manage batch operations using a transaction and to obtain an active transaction number using DBMonitor for Interbase and Firebird is added*Support for using ConnectionString and the TFmtBCD fields in NexusDB data provider is added. Read more about new Data Access Components for Delphi by Devart at the product pages: UniDAC 7.0 – http://www.devart.com/unidac/ODAC 10.0 – http://www.devart.com/odac/SDAC 8.0 –  http://www.devart.com/sdac/MyDAC 9.0 – http://www.devart.com/mydac/IBDAC 6.0 – http://www.devart.com/ibdac/PgDAC 5.0 – https://www.devart.com/pgdac/LiteDAC 3.0 – https://www.devart.com/litedac/VirtualDAC 10.1 – https://www.devart.com/virtualdac/ About Devart Devart is one of the leading developers of database tools and administration software, ALM solutions, data providers for various database servers, data integration and backup solutions. The company also implements Web and Mobile development projects. For additional information about Devart, visit http://www.devart.com/

TROUBLESHOOTING TIMEOUT IN AWS ELASTIC BEANSTALK

There is a lot of similarities between detective stories (from Sherlock Holmes, James Bond,???) and troubleshooting production problems. Detective stories need to have a very complex/burning problem. If your application is experiencing issues in production, it automatically becomes a burning problem in the enterprise and gets attention from Senior Management. A detective uses very basic clues, extrapolates them, rules out the odd possibilities, puts a lot of hard work and identifies the villain. He fights against all odds, takes risks and eradicates the evil. A lot of heroism is involved. This is no way different from debugging/troubleshooting complex production problems. Thus I am going to introduce a fictional troubleshooting character: ???Jack Che???. Through this fictional character ??? I am going to narrate how complex real world production problems faced by major enterprises are solved. Feel free to share your comments and let me know whether you like it. If not I can always revert back to regular writing style. While twitter, Google and others are talking about 10 milliseconds, 20 milliseconds response time, still there are significant enterprises whose response time runs for several seconds. There is one such enterprise, whose response time was running for several seconds for their ???search??? transactions. Recently, this enterprise ported their application to AWS Elastic Beanstalk environment in Java 8/Tomcat 8. When a customer performs ???search??? operation on this application, a progress bar is displayed on the browser. Once search completes, progress bar vanishes and search results are displayed. After porting to AWS Elastic Beanstalk for certain data conditions, the customer was seeing a progress bar on the screen forever. Management didn???t know what was causing this issue and how to go about solving it. Thus they engaged Tier1app LLC to solve the problem. Tier1app LLC sent out their top notch troubleshooting detective ???Jack Che??? to solve the problem. HTTP 504 Gateway Time-out Error Code Just like every time, Jack Che was super excited to solve this problem. He assessed the situation quickly. He wanted to understand what interaction was going on between the Server and the browser. Thus he launched the developer console in the chrome browser and triggered the search transaction. A few seconds later, he saw HTTP 504 error code thrown from the server. (HTTP 504 is a time-out error thrown from the backend). Ah, he got his first clue. Now Jack Che started to review the Ajax javascript which made the backend server side call. Unfortunately, javascript didn???t have any error handling code in place. Thus, when error code was thrown it wasn???t handled and the screen was displaying progress bar forever. Wow, initial breakthrough for Jack Che within few minutes of his job. Seeing the smoke, where is the fire? Now Jack Che was curious to figure out from where this HTTP 504 error code is thrown? Jack Che found a second clue now; exactly at 60th second of the search transaction, this HTTP 504 error code was thrown. Since exactly at 60th second, HTTP 504 error code was thrown, Jack Che believed there is some sort of timeout is kicking in. But he wasn???t sure where this timeout value is configured. He searched all throughout the application source code to see whether any 60 seconds timeout is configured. He checked with the application development team. But there was no 60 seconds timeout configured anywhere within the application source code. Elastic Beanstalk Architecture Now he came to the conclusion that timeout is triggered by some component that is outside of the source code. Thus he started to examine each layer in the technology stack. Below is a very quick overview of the Elastic Beanstalk architecture.

Enhancing the WebBrowser control–do not use

The Webbrowser control does not show the notifications of the document like  a) downloading web page.. b) resolving proxy…  c) hyperlink url’s  You can quickly enable this by using the StatusTextChanged Event of the webbrowser control. It is a two-step process:  Step 1: Attach an event handler to the Webbrowser’s StatusTextChanged event, Like myWebBrowser.StatusTextChanged += new EventHandler(myWebBrowser_StatusTextChanged);  Step 2: Use the Webbrowser’s StatusText property to retrieve the current status notification. Create the event handler. private  void myWebBrowser_StatusTextChanged(object sender, EventArgs e)  {    //get the current status text from the webbrowser control  //and assign it to a control in the status bar.      statusStrip1.Text = webBrowser1.StatusText;  }

Disaster Recovery as a Service

Unforeseen outages make entrepreneurs painfully aware of the preeminence of disaster recovery (DR) planning. However, anticipating a data center outage is not just about an effective DR strategy, it is more about lessening the business impact. Executing a DR plan aligned with operational imperatives and business needs can trigger challenges with demanding recovery time objective (RTO) and recovery point objective (RPO) requirements, with a little crave for the investment, deployment, and continuous management of a DR environment. Therefore, for enterprises with limited resources to maintain DR needs, cloud-based disaster recovery as a service (DRaaS) offers another layer of protection to their data while minimizing CapEx and simplifying deployment. DRaaS includes the replication of infrastructure, applications, and data to the cloud. DRaaS not only protects your data and also ensures your business continuity by minimizing downtime and interruption to clients, customers, and employees in the event of a disaster or server failure. A dedicated DRaaS service provider manages both primary production and disaster recovery instances in the cloud and benefits enterprises in eliminating on-premises infrastructure. An ideal cloud-based DR Service offers the following key elements: Greatly reduced CapExImmediate business continuitySimpler disaster recovery deploymentFull-site, disk, file, and system recoveryA replica of all protected systemsWAN optimization between cloud and the customer siteData validation to ensure the data integrity Benefits of Cloud-based DR Service Cost-effective Solution The pay-as-you-go pricing model of the cloud significantly lowers costs by eliminating unpredictable failure of hardware, software or data center. The DR Service helps reduce the secondary or tertiary data center investments and on-going maintenance. Efficient to Start An effective DR strategy provides an easy way to implement a DR Service by not investing in any hardware or a secondary site and by not hiring and training the new staff. The service offers a secure, scalable, automated, and simple process to replicate and recover applications & data during a disruptive event. Improve Operational Efficiency DR offers flexible services that help you to scale up during seasonal peaks and to scale down while slower times. This versatility improves the operational efficiency of your business and helps in better management of your budget, resources, and personnel. Reliable Security To deploy and manage applications in cloud services, organizations concern about security. However, choosing a service provider, who is compliant with all the relevant regulations, will help you with the most reliable security. Hence, with cloud-based DR solution, organizations can benefit from flexible contract terms, lower price points, and the scalability to grow as your business needs change. DRaaS ensures your business continuity of daily operations with minimal disruptions. Therefore, to safeguard all aspects of your organization, a comprehensive DR strategy has to be implemented. For details please visit : http://vmokshagroup.com/blog/

Moving with SQL Server to Linux? Move from SQL Server to MySQL as well!

Over the recent years, there has been a large number of individuals as well as organizations who are ditching the Windows platform for Linux platform, and this number will continue to grow as more developments in Linux are experienced. Linux has for long been the leader in Web servers as most of the web servers run on Linux, and this could be one of the reasons why the high migration is being experienced.

THREAD DUMP ANALYSIS API–do not use

In this modern world, thread dumps are still analyzed in a tedious & manual mode i.e., you have to get hold of DevOps team, ask them to send you the thread dumps, then they will mail you the thread dumps, then you will upload the dumps in to a thread dump analysis tool, then you have to apply your intelligence to analyze it. There is no programmatic way to analyze thread dumps in a proactive manner. Thus to eliminate this hassle, fastthread.io is introducing a RESTful API to analyze thread dumps. With one line of CURL command, you can get your thread dumps analyzed instantly. Here are a few use cases where this API can be extremely useful. Use case 1: Production Health Check Most of the DevOps invokes a simple Http ping to check the application???s health. This ping is good to detect whether application is alive or not. But it won???t inform anything beyond that. It won???t report whether application is poorly responding, it won???t report whether Database connections are locked up, it won???t report whether CPU is spiking up, it won???t report whether memory is leaking. Even if it reports those issue, still you would have to manually analyze to see what is causing these problems. Now with the introduction of this Thread dump analysis API, you will not only know the healthiness of the application ??? but also the root cause the problem. Beauty of this health check is: It doesn???t add any overhead (or negligible overhead). Because entire analysis of the thread dumps are done on a remote server. The only thing you would have to do is capture the thread dumps from your production machines and invoke this API. Use case 2: Performance Tests When you conduct performance tests, you might want to take thread dumps on a periodic basis and get it analyzed through the API. In case if thread count goes beyond a threshold or if too many threads are WAITING or if any threads are BLOCKED for a prolonged period or lock isn???t getting released, it needs to get in to the visibility. It should be analyzed before code hits the production. In such circumstance this API will come very handy. Because analyzing several thread dumps meticulously is impossible for anyone. Use case 3: Continuous Integration As part of continuous integration it???s highly encouraged to execute performance tests. Thread dumps should be captured and it can be analyzed using the API.  If API reports any problems, then build can be failed. In this way, you can catch the performance degradation right during code commit time instead of catching it in performance labs or production. How to invoke Thread dump analysis API? Invoking Thread dump analysis API is very extremely simple: Register with us. We will email you the API key. This is a one-time setup process. Post HTTP request to http://api.fastthread.io/fastthread-api?apiKey={API_KEY_SENT_IN_EMAIL} The body of the HTTP request should contain the Thread dump that needs to be analyzed. You can either send 1 thread dump or multiple thread dumps in the same request. HTTP Response will be sent back in JSON format. JSON has several important stats about the Thread dump. Primary element to look in the JSON response is: ???problem???. API applies several intelligent thread dump analysis patterns and if it detects any issues, it will reported in this ???problem??? element. CURL command Assuming your Thread dump file is located in ???./my-thread-dump.txt,??? then CURL command to invoke the API is: curl -X POST ???data-binary @./my-thread-dump.txt http://api.fastthread.io/fastthread-api?apiKey= ???header ???Content-Type:text??? It can???t get any more simpler than that? Isn???t it?

Global Day of Code Retreat

Hey guys, FINALLY San Francisco has a Global Day of Code Retreat! It’s being hosted this Saturday in the Financial District: http://www.meetup.com/San-Francisco-Software-Craftsmanship/events/234610700/

API Resource group

Anyone working with open API’s or working through your API strategy…may want to check out RAML. Here’s a group that does regular talks on it by the same folks who authored the spec. http://www.meetup.com/RAML-Meetup-San-Francisco-Bay-Area/