Question

How to sync desktop with AS400 DB2 Database, probably using MS SQL?

Asked by: Ryan94114

What is the most straightforward way to get MS SQL 2008 to sync about 60 tables with DB2 on AS400? (The tables are members, but I have aliased all of the members as per IBM's recommendations).



I don't need to write anything to the AS400, I just need to do reads that are up to the moment.  

I can get admin privileges on the AS400 but I can't change anything on the AS400.  So for example it's better if DB2 doesn't "push" the data out. My goal is to "pull" the data from DB2.  There's a transaction journal on the AS400 but I don't know how to lock it and I don't know how to interpret it.  There is no timestamp on the records in the DB2 database and I am not allowed to insinuate one myself.

The desktop is running Vista, MS SQL 2008, C#, Visual Basic, SQL but it would be glad to run any strongly supported desktop solution that doesn't cost much.

What would help me is a list of classes or SQL verbiage or DB2 vocabulary along with pointers to the corresponding documentation. I don't have any experience with any of this stuff, except that I was a soldier in related wars (i.e. I wrote a C-based multi-threaded database with replication, incremental recovery, logging, prioritized-data access, and three years under heavy fire without corruption or violations of rule-based integrity but I digress).

Context: It takes about 30 seconds round-trip for any SQL query on my client's AS400, pretty much independent of the query or the quantity of queries. I already do threading trick and keep about 20 active connections open at all times; this seems to give the best performance right now.

This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.

Subscribe now for full access to Experts Exchange and get

Instant Access to this Solution

  • Plus...
  • 30 Day FREE access, no risk, no obligation
  • Collaborate with the world's top tech experts
  • Unlimited access to our exclusive solution database
  • Never be left without tech help again

Subscribe Now

Asked On
2009-08-15 at 00:43:47ID24654904
Tags

DB2 ms sql synchronization federation subscription importing exporting distribution replication as400

Topics

SQL Server 2008

,

DB2 Database

,

Programming for iSeries / AS400

Participating Experts
4
Points
500
Comments
18

Trusted by hundreds of thousands everyday for fast, accurate and reliable tech support.

  • "The time we save is the biggest benefit of Experts Exchange to Warner Bros. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange." Mike Kapnisakis, Warner Bros.
  • "Our team likes having a resource that is more secure than just using Google and most experts using this service really know their stuff. It's nice to look here first versus using Google." Dayna Sellner, Lockheed Martin
  • "Anytime that I've been stumped with a problem, 9 out of 10 times Experts Exchange has either the accepted solution or an open discussion of the potential solution to the problem." Kenny Red, eBay Inc.

See what Experts Exchange can do for you.

Got a question?

We've got the answer.

Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.

Screenshot of Experts Exchange Knowledgebase

Need individual assistance?

Our experts are ready to help.

If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.

Screenshot of Experts Exchange Knowledgebase

Want to learn from the best?

Read articles from industry experts.

Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.

Screenshot of an Article

Working on a long term project?

Store your work and research.

Save solutions to your questions, answers you’ve discovered through searching plus helpful articles in your personal knowledgebase for easy future access.

Screenshot of Experts Exchange Knowledgebase

Access the answers to your technology questions today.

Subscribe Now

30-day free trial. Register in 60 seconds.

What Makes Experts Exchange Unique?

Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Trusted by the world's most respected brands.

image of each brand's logo

Faithfully serving IT professionals since 1996.

Experts Exchange Logo

Try it out and discover for yourself.

Subscribe Now

30-day free trial. Register in 60 seconds.

Related Solutions

  1. Connecting to DB2 on AS400 (CFMX)
    I am going to be connecting ColdFusion MX proffessional on and NT server to a DB2 database on an AS400 machine. Are there any hurdles that I should be aware of before I start? Thanks, Scott
  2. Linked server to DB2 on As400
    im having a problem creating a linked server to db2. we dont do SNA-- we have an AS400 with V4r5, and DB2 6.~~; and am running SQL Server 2000-- i think that the main problem is im having problems writing the OLEDB connection string for this-- because all of the resource i ...
  3. Connecting to DB2 on AS400
    Hi All, I am trying to connect to a DB2 on AS400 using ASP. I have installed IBM AS400 Client Access Express. I tried exploring it but to no valid. Please kindly provide me the details of the configurations to be done or include anything that you think I should be aware. T...
  4. DB2 vs PF (both on AS400)
    Hi, I used to work with Physical Files (PF) on AS400 and this is first time when I may have to work with DB2 tables on AS400. I need to pull data from As400 to windows environment (this could be .net or Java) over ODBC and I have an option to use AS400 physical files or DB2 t...
  5. Moving data from AS400 to DB2
    hi, whts best and simple way to move data from AS400 to DB2 Thanks, Bobby

Free Tech Articles

  1. WARNING: 5 Reasons why you should NEVER fix a computer for free.
    It is in our nature to love the puzzle. We are obsessed. The lot of us. We love puzzles. We love the challenge. We thrive on finding the answer. We hate disarray. It bothers us deep in our soul. W...
  2. SCCM OSD Basic troubleshooting
    SCCM 2007 OSD is a fantastic way to deploy operating systems, however, like most things SCCM issues can sometimes be difficult to resolve due to the sheer volume of logs to sift through and the dispe...
  3. Migrate Small Business Server 2003 to Exchange 2010 and Windows 2008 R2
    This guide is intended to provide step by step instructions on how to migrate from Small Business Server 2003 to Windows 2008 R2 with Exchange 2010. For this migration to work you will need the fo...
  4. Create a Win7 Gadget
    This article shows you how to create a simple "Gadget" -- a sort of mini-application supported by Windows 7 and Vista. Gadgets can be dropped anywhere on the desktop to provide instant information, ...
  5. Outlook continually prompting for username and password
    There have been a lot of questions recently regarding Outlook prompting for a username and password whilst using Exchange 2007. There are a few reasons why this would happen and I will try to cover t...
  6. Backup Exchange 2010 Information Store using Windows Backup
    There seems to be quite a lot of confusion around the ability to backup Exchange 2010 using the built in Windows Backup feature. This stems from the omission of this feature prior to Exchange 2007 s...

Cloud Class Webinars

  1. Avoiding Bugs in Microsoft Access
    Alison Balter takes and in-depth look at avoiding bugs in Access. In this webinar you will learn about using the immediate window to debug your applications, invoking the debugger, using breakpoints to troubleshoot, stepping through code, setting the next statement to execute, ...
  2. Top 10 Best New Features in Visio 2010
    Scott Helmers gives live demonstrations of the top 10 new features in Visio 2010. This webinar will teach you how to create compelling diagrams by adding shapes to the page with a single click, linking the shapes in a diagram to data in Excel (or SQL Server, or SharePoint), ...
  3. IT Consultant Business Secrets Revealed
    Michael Munger, Experts Exchange tech pro and IT consultant, pulls back the curtain on his very successful businesses and answers question on every IT consultant and business owner should know about. He shares secrets on what he did to solve the 5 most common problems in IT, ...
  4. Disaster Recovery and Business Continuity
    Quest CTO, Mike Billon, gives an overview of the steps involved in building a dunamic disaster recovery plan. Through case studies and an examination of software/hardware tooles for monitoring and testing, you'll gain a better understandin of where you are, where you want ...
  5. Organize Your Visio Diagrams with Containers and Lists
    Scott Helmers uses cross functional flowcharts, wireframe diagrams, data graphic legends and seating charts to teach you: how to ustilize all three new structured diagram components in Visio 2010, the best practices for organizeing shapes in previous version of Visio, how to organize ...
  6. How to Us Objects, Properties, Events and Methods in Microsoft Access
    Alison Dalter gives an in-depbth look at objects, properties, events and methods in Microsoft Access. In this webinar you will learn about using the object browser, referring to objects, working with properties and methods, working with object variables, understanding the ...

Join the Community

Give a Little. Get a Lot.

Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.

Join the Community

Answers

 

by: momi_sabagPosted on 2009-08-15 at 04:20:00ID: 25104910

as i understand, you alreay have a working solution which you are trying to improve it?

 

by: Ryan94114Posted on 2009-08-15 at 12:33:49ID: 25106589

Sorry for the confusion.

Currently, I access the AS400 directly using IBM's ODBC Adapter and .NET35 ADO.NET.

This doesn't work because DB2 on the AS400 has a very high per-query overhead.

I'm looking for a solution so that I keep a local copy of the 60 tables, perform quick queries on the local copies for my customer, and constantly update it throughout the day from the AS400.  The problem is that my documentation I have only shows how to import/export databases; it does not indicate how MS SQL can best draw from DB2.

I appreciate any help,

Ryan

 

by: Ryan94114Posted on 2009-08-15 at 13:13:58ID: 25106744

Slight goal revision:

What is the easiest way to maintain a sync'd desktop copy of 60 tables in DB2 on an AS400?

I'm hoping to find something better than duplicating the 60 databases on the AS400 & then TCP'ing the changes to my desktop.

In my original question I said I don't want to do setup on the AS400 because I'm not familiar with the platform but any straightforward solution would be welcome.

Thanks again,

Ryan

 

by: momi_sabagPosted on 2009-08-15 at 13:28:45ID: 25106793

well, easiest thing will be creating triggers on the 60 tables on the as400 which will allow you to identify the new records and then just copy these records

 

by: Gary_The_IT_ProPosted on 2009-08-15 at 14:36:47ID: 25106998

In general, I don't think triggers are the best way to go, for several reasons:

1) Performance.  Trigger programs add synchronous overhead to every single database write, update and delete operation.
2) Risk.  Trigger program failure, delays, or locks can cause other applications that touch these tables to fail unexpectedly.
3) Labor: It is a lot of work to design, code, properly test, and maintain 60 trigger programs, and it is possible that these programs will require additional maintenance if the underlying table changes (depending on design).

Now, there are technical solutions to help mitigate each of the above, but no matter what approach you take, triggers will reduce overall database performance, add more points of failure into multiple processes, and take quite a bit of work to implement and maintain.

Hands down, the best solution that I;ve ever seen is to journal (transaction log) the tables that need to be replicated, and create a journal monitor process (unfortunately this code needs to run on the AS/400) that monitors the database journal, and pumps the data over to the remote machine where it can be synchronized into the replica table.  The process is incredibly lightweight compared to other mechanisms.  I've personally developed replication code that can mirror extremely high volumes of changes with almost no perceptible AS/400 overhead.

Advantages include:

1) Performance.  Almost invisible compared to heavy-handed query-based "pulls".  Much lighter than triggers (especially true if tables are already journaled).

2) Risk.  If the journal monitor process fails, the client's applications are not effected.  While some AS/400 code must be installed and journaling implemented if not currently in use, the application is not directly in the client's application path.

3) Labor.  There is a single program to develop and maintain.  Tables to replicate can be soft-coded, minimizing the need to maintain this program if needs change in the future.

There are third-party data mirroring tools out there that will do this for you, but it is pretty simple to write your own.  They are typically fairly costly.

There is just no good, efficient, performance-friendly way that I know of to do this as a "pull" from the client side.

If you are interested in this approach, post back and I can provide some good sample code and technical references to get you started.

- Gary Patterson

 

by: Ryan94114Posted on 2009-08-16 at 14:56:10ID: 25110634

Gary,

     I'm glad to hear you weigh in on this issue.  I buy into your approach for client risk reasons alone.

     The performance issues also make your approach much more compelling.  In early stages of development I would like to avoid database locks and new database writes as much as possible; journaling seems pretty safe.

     I would be very interested in sample code and tech references.  Thinking about programming languages, I understand IBM encourages RPG and Java. I bet a partition running a Windows partition w/Visual RPG & C# would be like a barnacle to the existing native RPG/DB2 code, so I'm guessing RPG & Java are the options, which is fine.  I don't know RPG or Cobol at all, although I've had some experience with IBM languages like PL/I and Fortran
     
     Restating a possibly important constraint: I'm using database members, and don't mind getting updates for an entire table as long as I know which member was affected by the update. My client's tables do not have a column naming the affected database member.

     I was surprised to see that the Q&A re. accessing DB2 from Windows ranked fairly highly on Google's search list leading to more hits than I would have expected. Hopefully journaling will also be of interest to a number of people.

---Ryan


   

 

by: Gary_The_IT_ProPosted on 2009-08-16 at 16:35:54ID: 25110917

Ryan,

I've been down this path numerous times.  Generally I resolve real-time (or near-real-time) replication needs like this with packaged software, but I have also just had to write it myself.  It is easier than it sounds once you understand the framework and restrictions.

Journal processing ins THE way to go.  No other solution that I've seen comes close in terms of performance, flexibility, and reliability.  Journaling support is a native OS feature, and is supported on OS/400 versions.  Journaling support (unlike most SQL functions) is fully multi-member table-aware, and every journal entry contains the library, table, and member name.  While you must journal on a table-by table basis (you can't journal one member of a table) , when it comes times to process journal entries, you can choose to receive entries for the entire table, or only for selected members.

You can't create a Windows partition on an AS/400.  IBM marketing literature sometimes may lead you to believe that this is an option, but it isn't.  Depending on your hardware and OS version, you can add in an expansion card containing a Windows server, or attach to an external "Integrated" Windows server, or attach to an "Integrated" Blade server running Windows servers, but none of those things are going to help directly in this process.  One advantage of using an integrated server is that there is a very fast dedicated virtual LAN available.  If your system already has an integrated Windows server, this is a nice place to run your Windows daatabase.  Don't be surprised if your system administrators are not aware of the Integrated Server options:

http://publib.boulder.ibm.com/infocenter/iseries/v5r3/index.jsp?topic=/rzahq/rzahqupspi.htm

Again depending on hardware, you
r partition choices are OS/400, AIX, or Linux.  That said, this particular process must run in a OS/400 partition, since you need local access to the DBMS for all of this to work.


Here's the basic process:

Configure journaling -> CL program containing RCVJRNE command -> Your custom exit program -> QSNDDTAQ API -> AS/400 data queue - Windows/Java AS/400 Data Queue "Receive API" -> User written Windows/Java program to update replica database

1) Make sure your tables are journaled.  Use the green-screen command DSPFD and look at the line "File is currently journaled" (if you search, be aware it is case sensitive).  If it is "Yes", then life is pretty good.  There may be some operational coordination needed on what happens to old journal receivers (the contaner for journal entries) when they fill up.  Some shops save them for a while and then delete them, some back them up for audit purposes, some delete them immediately.  You'll need to make sure that the cleanup schedule allows time for your processing program to process all of the entries that you are interested in.  If your tables are not journaled, post back and we can discuss.  It is important to set up journaling properly in order to minimize performance impact and disk utilization.  Properly configured journaling is very lightweight.  Improperly configured journaling can cause performance bottlenecks.

In general to start journaling, you create a journal receiver (CRTJRNRCV), which is just a fancy log file, create a journal (CRTJRN) which is just a static object used to associate one or more tables with a series of journal receivers, and start journaling the desired tables (STRJRNPF) to the newly-created journal.  When a journal receiver fills up, you create a new one (manually or automatically - guess which I recommend?), and journaling will seamlessly start filling up the new journal receivers.  Journal receivers can breed quickly when associated with busy tables, so disk space needs to be managed.

2) Create a CL program containing the RCVJRNE command.  This command is used to specify selection criteria for journal entries that are to be passed to your Exit Program (Step 3), and to register the Exit Program with the DBMS as a journal entry processing program.  This program should run as a "servce", and be started automatically whenever your application system is operational.  Your Exit program will execute in this process.  This CL program is very simple.  Look up the last journal entry processed, and run the RCVJRNE command with the proper parameters to get it to start processing at the correct point.

http://publib.boulder.ibm.com/infocenter/iseries/v5r3/index.jsp?topic=/cl/rcvjrne.htm
This thread has a CL in it that is very close to what you want.  it looks lile the RPG is in-progress code, but the CLpart looks pretty good.


3) Create an exit program to process journal receiver entries.  Your realistic programming language options are going to be native AS/400 C, RPG IV, or COBOL.  I'll stick to C and RPG, since I am much stronger there than in COBOL.  This exit program will be called automatically by the DB2 DBMS each time a new journal entry is written that meets your selection criteria.  You'll want this program to be simple and fast:  Grab the data, and push it using a fast method (I suggest using an AS/400 Data Queue object - very very fast and easy to implement) to your Windows box, record the last journal entry number successfully processes in case your process is terminated, and terminate.

You can create a persistent, reusable data queue object using the CRTDTAQ command, and enqueue and dequeue entries using the QSNDDTAQ and QRCVDTAQ APIs.  You can easily find documentation and sample code for these APIs online - they are very simple to implement.

http://publib.boulder.ibm.com/infocenter/iseries/v5r3/index.jsp?topic=/rzaki/rzakiexitjrnentry.htm
http://systeminetwork.com/node/61262

4) Create a Windows-based program that blocks on the AS/400 data queue using APIs supplied as part of Client Access or the AS/400 Java Toolbox (depending on your language choice), and processes each entry received - taking the proper Add/Update/Delete action on your replica tables.

Windows:

http://publib.boulder.ibm.com/infocenter/iseries/v5r4/index.jsp?topic=/rzaik/rzaikappdq.htm
http://systeminetwork.com/article/work-data-queues-api-net-applications

For Java, check out the AS/400 toolbox for Java, or the JTOpen project (open source version of the Toolbox):

http://www-03.ibm.com/systems/i/software/toolbox/

That's it!  

Once you understand the basic framework, it isn't too complicated.  The biggest hurdle for you, I suspect, is going to be the mundane learning curve ahead to figure out how to compile example code.

- Gary Patterson (check out my EE profile: http://www.experts-exchange.com/M_4382324.html)





 

by: Gary_The_IT_ProPosted on 2009-08-16 at 19:55:14ID: 25111416

Missing link for the example CL that I mentioned in #2.:  http://archive.midrange.com/rpg400-l/200312/msg00143.html

- Gary Patterson (check out my EE profile: http://www.experts-exchange.com/M_4382324.html)

 

by: Ryan94114Posted on 2009-08-17 at 14:07:01ID: 25118402

I really appreciate the overview of journaling on the AS400 and how to capture its results in Windows.

One of the nice things about journaling is its (I hope) automatic inclusion of intra-table transactions; if it has a transaction ID marker it would also word for cross-table transactions.  It turns out the system is designed to maintain integrity at all times; the IT guy just didn't know that. I guess communication is never perfect.


I'm glad you mentioned C because I strongly prefer it to Java in most instances. Elegantly designed C API's are rare but wonderful to see. Lucid class taxonomies don't seem to survive Java team programming without losing a set of clear semantics about object creation and the invariants governing their ongoing state. Java isn't enough like Smalltalk to be real OOP, and unlike C and C# it actively hinders functional programming, rule engines, language oriented programming, declarative programming, meta-level programming, or the like.

I will chat with my AS400 IT guy to see if the journaling you describe is acceptable; I suspect he will be very happy. He also knows about putting Windows on the AS400, and at this point the question will just be whether putting in a Windows card is better or whether buying a desktop and putting it on the AS400 LAN is better for the middleware.

Right now the AS400 DB2 data flows like this:

[AS400 Order Entry] =>
      [AS400 Journaling] =>
         [Desktop.Net collect scheduling constraints] =>
             [Desktop display constraints] =>
                    [Desktop let's schedule what-if his way into a schedule by making choices] =>
                            [Desktop has a declarative representation of a plan] =>
                                    [AS400 Master Schedule]
   


But it might be much more efficient to use a middle-ware approach:

[AS400 Order Entry] =>
      [AS400 Journaling] =>
         [AS400 Windows card .Net: collect scheduling constraints] =>
             [Desktop display constraints] =>
                    [Desktop human scheduler does what-if's and makes schedule choices] =>
                            [Desktop updates a declarative representation of a plan] =>
                                    [AS400 Master Schedule]

Thanks again,

Ryan

 

by: Gary_The_IT_ProPosted on 2009-08-18 at 08:12:40ID: 25124059

Post back if you or you AS/400 guy need any help.

- Gary Patterson (check out my EE profile: http://www.experts-exchange.com/M_4382324.html)

 

by: tliottaPosted on 2009-08-18 at 11:09:40ID: 25125910

Ryan:

>  (The tables are members, but I have aliased all of the members as per IBM's recommendations).

Can you clarify that one small piece? Is that an indication of 'multi-member' files? Or did you simply create an ALIAS over the single members in each file?

If the files are multi-member, what purpose is served by the different members? In some cases, a file might be 'partitioned' into members so that each member serves a different company or different division or even user. Other times, members might be generated for each new year or other calendar period for historical reasons. In your case, multi-members would serve what purpose?

Tom

 

by: Ryan94114Posted on 2009-08-22 at 01:44:29ID: 25157944

Sorry. I aliased the databases. They are indeed multi-member, in the sense that (N015) is for one location, (N035) is for another, and so forth, for each table.

Turns out the AS400 mirrors to another AS400, but unless DB2 on a PC can accept mirroring efficiently I still think journaling is the way to go.

 

by: Gary_The_IT_ProPosted on 2009-08-22 at 17:41:13ID: 25160886

Ryan,

What mirroring package is being used?  

- Gary Patterson (check out my EE profile: http://www.experts-exchange.com/M_4382324.html)


 

by: Ryan94114Posted on 2009-08-22 at 21:51:55ID: 25161391

Thanks very much. I will find out which mirroring package ASAP...

---Ryan

 

by: Ryan94114Posted on 2009-08-24 at 14:29:42ID: 25172828

Mirroring software is called Itera, and it uses journaling, so journaling is already enabled for all of the databases in question.

I asked IT if Itera can replicate to a Windows-based "client".  I imagine DB2 running on Windows would work, but my imagination and IBM's reality rarely coincide... :)

---Ryan Michael

 

by: Gary_The_IT_ProPosted on 2009-08-24 at 15:07:21ID: 25173087

I'm familiar with iTera, and afiak, it does not support remote journaling to anything other than another AS/400.

- Gary Patterson (check out my EE profile: http://www.experts-exchange.com/M_4382324.html)

 

by: SimonatBlueShieldPosted on 2009-08-28 at 01:52:36ID: 25205808

Hi Ryan,

I've very familiar with iTera, i used to work for the software vendor. iTera will only support mirroring to another AS/400 and will only support remote journaling as the transport mechanism. The vendor (Vision Solutions) has another product called Replicate1 which can mirror using the same journals that iTera is using on your primary AS/400 to a SQL server on windows desktop(or server), it can also mirror to a flat file (.CSV) so you can import the data into excel if required.

It's probably a little overkill for what you need to as it's pretty much an enterprise level product rather then a a simple replication tool.

Other vendors in the iseries world have similar offerings, i'm not personally familiar with it but it's been recommended by others i know is Quick-EDD/DRm (http://www.quick-edd.com/qedddrm/eng/home.php) another is DBMoto (http://www.hitsw.com/products_services/dbmoto/dbmoto.html), i've not personally used either so can't make any recommendation.

I'm not a programmer but i'm told that it's not too difficult to put together something to read the journals and get it into a format ready to import in SQL. Check out Chris Hird's blog (http://www.shield.on.ca/Blog/), Chris writes his own replication product on the AS/400 for High Availability, but he publishes alot of detail on how to read journals using IBM APIs etc, if you know some programming you'll spot what he doing pretty quickly i'm sure.

Best of Luck

Simon

 

by: Ryan94114Posted on 2009-08-29 at 16:00:18ID: 25215744

Thanks very much Simon!  

I'm very comfortable with programming; in DB land I'm best at C, Prolog, C#. For true object-oriented programming I usually use Ruby or even Smalltalk (IBM even pushed Smalltalk back in the day).

I unfortunately don't have much experience with java except as a compiler target language. If the iSeries tools include clean library calls I could adapt my source languages to use them.

Thanks again,

Ryan



20120131-EE-VQP-002

3 Ways to Join

30-Day Free Trial

The Experts

98% positive feedback on 31,087 answers since March 2000. angeliii is a Microsoft Most Valuable Professional for his work with MS SQL Server & Develoment.

He has also proven his knowledge of Visual Basic Programming, PHP Scripting and Oracle Databases.

The Experts

97% positive feedback on 10,752 answers since July 2000. lrmoore has more than 18 years experience in the networking industry.

The six-time Mircosoft MVPs specialties include firewalls, virtual private networking, and network management.

Testimonials

"...and excellent source for support... Kind of like having your very own IT dept." Electriciansnet

Testimonials

"I was apprehensive at signing up at first. However... it has already made my life as an IT administrator much easier." JaCrews

Testimonials

"WOW! You guys have great, active, and knowledgeable people on here." moore50

Business Clients

Business Clients

In the Press

"If you’ve got a question... Experts Exchange can supply an answer.”

In the Press

"...an invaluable aid for both IT professionals and those who require tech support."

In the Press

"where IT professionals provide quick answers on just about any topic"

Business Account Plans

Loading Advertisement...